런 개수가 같은 순열

각 문자열의 최대 동일 문자 블록 개수를 그대로 유지하는 서로 다른 재배열 수를 1000003으로 나눈 나머지를 구합니다.

보통7동적 계획법조합론아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

소문자 알파벳 a부터 z까지로 이루어진 문자열 SS가 있다. 같은 문자가 연속으로 이어지는 극대 구간을 런이라고 부른다. 예를 들어 bookkeeperb, oo, kk, e, p, e, r로 나뉘므로 런이 7개다.

SS의 순열 중에서 런의 개수가 SS와 정확히 같은 것이 몇 개인지 구한다. 두 순열 aabb는 어떤 위치 ii에서 a[i]b[i]a[i] \neq b[i]이면 서로 다른 것으로 센다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어지는 TT개의 줄에 소문자 알파벳으로만 이루어진 빈 문자열이 아닌 문자열 SS가 한 개씩 주어진다.

제한

  • 1T1001 \le T \le 100
  • 1S1001 \le |S| \le 100

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 런의 개수가 SS와 같은 SS의 서로 다른 순열의 개수를 1000003으로 나눈 나머지다.