#include <stdio.h>
#include <string.h>
int main(void)
{
char buf[16][85];
char status;
int i,j;
char* p;
while(scanf("%s",buf[0])&&buf[0][0]!='-')
{
status = 0;
for(i=0;i<15&&status==0;++i)
{
unsigned char num_time[10]={0};
for(p=buf[i];p[0]!='\0';++p)
{
++num_time[p[0]-'0'];
}
for(p=buf[i+1],j=0;j<10;++j)
{
if(num_time[j]>9)
{
p++[0] = j+'0';
p++[0] = num_time[j]/10+'0';
p++[0] = num_time[j]%10+'0';
}else if(num_time[j]>0)
{
p++[0] = j+'0';
p++[0] = num_time[j]+'0';
}
}
p[0]='\0';
//检测是否有相同的
for(j=i;j>=0;--j)
{
if(strcmp(buf[j],buf[i+1]) == 0)
{
status = 1;
break;
}
}
}
if(status == 0)
{
printf("%s can not be classified after 15 iterations\n",buf[0]);
}else if(i==1||(i==2&&j==1))
{
printf("%s is self-inventorying\n",buf[0]);
}else if(j+1==i)
{
printf("%s is self-inventorying after %d steps\n",buf[0],i-1);
}else
{
printf("%s enters an inventory loop of length %d\n",buf[0],i-j);
}
}
}