길이가 1부터 20까지인 모든 소문자 단어에 서로 다른 양의 정수를 하나씩 부여한다. 단어는 먼저 길이순으로, 같은 길이 안에서는 사전순으로 정렬한 뒤, 1번부터 차례대로 번호를 매긴다. 목록의 앞부분은 다음과 같다.
a 1
b 2
...
z 26
aa 27
ab 28
...
snowfall 157,118,051,752
...
이는 26진 전단사(bijective) 표기와 정확히 같다. 단어를 왼쪽에서 오른쪽으로 읽으며 a = 1, b = 2, …, z = 26을 각 자릿값으로 삼으면, 자릿값이 $d_1 d_2 \dots d_k$인 길이 $k$ 단어의 번호는 $\sum_{i=1}^{k} d_i \cdot 26^{,k-i}$ 이다.
단어가 주어지면 그 번호를, 번호가 주어지면 그에 대응하는 단어를 출력하는 양방향 변환 프로그램을 작성하라.
입력은 한 줄에 한 항목씩 나열되며, 각 항목은 1열에서 시작한다. 1열에 별표(*) 하나만 있는 줄이 나오면 입력이 끝난다.
각 항목은 숫자이거나 단어이다.
0–9의 십진 숫자로만 이루어지며(쉼표 없음), 길이가 1부터 20까지인 어떤 단어에 대응한다.a–z의 소문자 1개부터 20개까지로 이루어진다.각 입력 항목마다 한 줄씩 출력한다. 단어는 1열에서 시작하고, 그에 대응하는 번호는 23열에서 시작한다. 그 사이는 공백으로 채운다(즉 단어를 폭 22칸의 왼쪽 정렬 칸에 넣고, 그 뒤에 곧바로 번호를 붙인다). 번호는 오른쪽에서 세 자리마다(천, 백만 등) 쉼표로 구분한다.