자기 목록 수

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

"Kronecker's Knumbers"는 간판에 붙이는 플라스틱 숫자를 만드는 작은 회사다. 극장 간판이나 주유소 가격판에 올라가는 그 숫자다. 사장이자 유일한 직원인 Klyde Kronecker는 어떤 숫자를 몇 개 썼는지 장부에 적어 둔다. 전화번호 "5553141"이 적힌 간판을 방금 만들었다면, 한 열에는 5553141을 적고 옆 열에는 사용한 숫자의 개수를 적는다. 1이 둘, 3이 하나, 4가 하나, 5가 셋이다. 쓰지 않은 숫자는 장부에 올리지 않는다. 그는 이 내용을 21131435처럼 압축해서 쓴다.

며칠 전 Klyde는 31123314라는 수를 주문받았고, 이 수의 목록이 수 자신과 같다는 사실을 발견했다. 1이 셋, 2가 하나, 3이 셋, 4가 하나다. 그는 이런 수를 자기 목록 수라고 부른다. 어떤 수가 자기 목록 수인지, 또는 아래에 정의한 목록 연산을 반복하면 자기 목록 수에 도달하는지 알아내려 한다.

음이 아닌 정수 nn의 목록은 c1d1c2d2ckdkc_1 d_1 c_2 d_2 \cdots c_k d_k를 이어 붙인 정수다. 각 cic_i는 양의 정수, 각 did_i는 숫자이고 0d1<d2<<dk90 \le d_1 < d_2 < \cdots < d_k \le 9를 만족한다. nn에 나타나는 모든 숫자 dd에 대해 d=did = d_iii가 존재하며, 그 ddnn의 십진 표기에 정확히 cic_i번 나타난다. 5553141이라면 c1=2c_1 = 2, d1=1d_1 = 1, c2=1c_2 = 1, d2=3d_2 = 3 식으로 정해져 목록은 21131435가 된다. 1000000000000의 목록은 12011이다. 0이 열둘, 1이 하나다.

nn이 자신의 목록과 같으면 nn을 자기 목록 수라고 한다. 목록 연산을 jj번 반복한 값이 자기 목록 수가 되는 가장 작은 jj(j1j \ge 1)가 있으면, nnjj단계 후에 자기 목록 수가 된다고 한다. 21221314의 목록은 31321314이고, 31321314의 목록은 31123314이며, 31123314은 자기 목록 수다. 그래서 21221314은 2단계 후에 자기 목록 수가 된다.

어떤 j0j \ge 0에 대해 목록 연산을 jj번 반복한 값과 j+kj + k번 반복한 값이 같아지는 가장 작은 kk가 2 이상이면, nn은 길이 kk의 목록 순환에 들어간다고 한다. 314213241519의 목록은 412223241519이고 412223241519의 목록은 다시 314213241519이므로, 314213241519은 길이 2의 목록 순환에 들어간다. 이 경우 j=0j = 0이다.

음이 아닌 정수의 수열을 읽어, 각 값이 자기 목록 수인지, 몇 단계 후에 자기 목록 수가 되는지, 길이 kk의 목록 순환에 들어가는지, 아니면 목록 연산을 15번 적용해도 이 중 어디에도 해당하지 않는지 판정하는 프로그램을 작성하라.

입력

음이 아닌 정수가 한 줄에 하나씩 주어진다. 각 정수는 최대 80자리이고 불필요한 앞자리 0은 없다. 마지막 줄에는 종료 값 -1이 오며, 이 값은 처리 대상이 아니다.

출력

각 입력 값 nn마다 아래 네 문장 중 하나를 한 줄에 출력한다. nn은 입력에 적힌 그대로 쓰고, jj는 양의 정수, kk는 2 이상의 정수다.

n is self-inventorying
n becomes self-inventorying after j steps
n enters an inventory loop of length k
n can not be classified after 15 iterations

목록 연산은 최대 15번까지만 적용한다. 즉 n0=nn_0 = n부터 n15n_{15}까지만 살펴보고, 이 값들에서 앞의 세 조건 중 어느 것도 확인되지 않으면 네 번째 문장을 출력한다. j=1j = 1일 때도 steps를 그대로 쓴다.