단어 덧셈은 905 + 125 = 1030 처럼 덧셈식에 나오는 각 숫자를 알파벳으로 바꿔 놓은 것이다.
예를 들어 9를 A, 0을 C, 5를 M, 1을 I, 2를 B, 3을 P로 바꾸면 위 식은 아래처럼 쓸 수 있다.
ACM + IBM = ICPC
905 + 125 = 1030 의 경우, 알파벳을 다시 숫자로 되돌리는 방법은 모두 4가지이다.
| 방법 | A | B | C | I | M | P |
|---|---|---|---|---|---|---|
| 방법 1 | 9 | 2 | 0 | 1 | 5 | 3 |
| 방법 2 | 9 | 3 | 0 | 1 | 5 | 4 |
| 방법 3 | 9 | 6 | 0 | 1 | 5 | 7 |
| 방법 4 | 9 | 7 | 0 | 1 | 5 | 8 |
단어 덧셈이 하나 주어졌을 때, 그 식을 성립시키는 숫자 배정이 몇 가지인지 세는 프로그램을 작성하시오. 단, 다음 조건을 모두 만족해야 한다.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 다음과 같이 주어진다.
이 N개의 단어는 (단어 1) + (단어 2) + ... + (단어 N-1) = (단어 N) 이라는 방정식을 나타낸다. 즉 마지막 단어가 앞의 모든 단어의 합과 같다.
N은 2보다 크고 13보다 작다. 각 단어의 길이는 0보다 크고 9보다 작다. 한 테스트 케이스에 등장하는 서로 다른 알파벳의 개수는 0보다 크고 11보다 작다.
입력의 마지막 줄에는 0이 하나 주어진다. 이 줄은 처리하지 않는다.
각 테스트 케이스마다 그 단어 덧셈을 성립시키는 숫자 배정의 개수를 한 줄에 하나씩 출력한다.