단어를 포함하는 순열

A의 서로 다른 순열 중 B를 연속 부분 문자열로 포함하는 것의 개수를 10007로 나눈 나머지를 구한다.

어려움8동적 계획법조합론문자열 매칭수학아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

영어 소문자로 이루어진 단어 AABB가 주어진다. AA의 글자를 모두 사용해 다시 배열하면 여러 단어를 만들 수 있다. 이렇게 만들 수 있는 서로 다른 단어 중에서 BB를 연속한 부분 문자열로 포함하는 단어가 몇 개인지 세어라. 배열 방법이 달라도 결과가 같은 단어라면 한 번만 센다.

개수를 1000710007로 나눈 나머지를 구한다.

입력

첫째 줄에 영어 소문자로 이루어진 단어 AA가 주어진다. AA의 길이는 500500보다 크지 않다.

둘째 줄에 영어 소문자로 이루어진 단어 BB가 주어진다. BB의 길이는 AA의 길이보다 길지 않다.

출력

첫째 줄에 조건을 만족하는 단어의 개수를 1000710007로 나눈 나머지를 출력한다.

힌트

AA가 mirko이고 BB가 mir이면 조건을 만족하는 단어는 kmiro, komir, mirko, mirok, okmir, omirk 여섯 개다.