#include #include char s[100010]; int x[26]; int h[1<<19]; int al(char z) { return (z>='A' && z<='Z') ; } int main() { int k,i,j,p,l,mo; srand(12345375); for (i=0;i<26;i++) x[i]=(50+rand()+rand()); while (1) { scanf("%d",&k); if (k==0) break; scanf("%s",s); mo=strlen(s)*5+100; if (mo>(1<<19)) mo=(1<<19)-1; memset(h,0,sizeof(int)*mo); for (i=0;s[i];i++) if (s[i]>='a' && s[i]<='z') s[i]-=-'A'+'a'; i=0;j=0; while (s[i] && (!al(s[i]))) i++; j=i; p=0; l=0; while (s[j] && p