ll@n; string@ss[n]; rep(i,n){ string&s=ss[i]; char b='~'; char w=0; int o=0; int bj=-1; int c; int j; for(j=0;c=s[j];++j){ if(c==w){ o=1; } if(c>w){ w=c; } if(c<w&&c<=b){ b=c; bj=j; } } if(bj>=0){ for(int j=0;c=s[j];++j){ if(c>b){ swap(s[j],s[bj]); break; } } } else if(!o){ swap(s[j-1],s[j-2]); } } int q[n]; int qn=n; rep(i,n){ q[i]=i; } for(int j=0;;++j){ int b='~'; rep(i,qn){ b<?=ss[q[i]][j]; } int w=0; rep(i,qn){ if(ss[q[i]][j]==b){ q[w++]=q[i]; } } qn=w; if(!b){ break; } } int r=0; rep(i,n){ if(r<qn&&q[r]==i){ ++r; wt(n+1-qn); }else{ wt('0'); } }