각 문자열의 최대 동일 문자 블록 개수를 그대로 유지하는 서로 다른 재배열 수를 1000003으로 나눈 나머지를 구합니다.
소문자 알파벳 a부터 z까지로 이루어진 문자열 SSS가 있다. 같은 문자가 연속으로 이어지는 극대 구간을 런이라고 부른다. 예를 들어 bookkeeper는 b, oo, kk, e, p, e, r로 나뉘므로 런이 7개다.
a
z
bookkeeper
b
oo
kk
e
p
r
SSS의 순열 중에서 런의 개수가 SSS와 정확히 같은 것이 몇 개인지 구한다. 두 순열 aaa와 bbb는 어떤 위치 iii에서 a[i]≠b[i]a[i] \neq b[i]a[i]=b[i]이면 서로 다른 것으로 센다.
첫째 줄에 테스트 케이스의 개수 TTT가 주어진다. 이어지는 TTT개의 줄에 소문자 알파벳으로만 이루어진 빈 문자열이 아닌 문자열 SSS가 한 개씩 주어진다.
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xxx는 1부터 시작하는 테스트 케이스 번호이고, yyy는 런의 개수가 SSS와 같은 SSS의 서로 다른 순열의 개수를 1000003으로 나눈 나머지다.
Case #x: y