#include #include #include //#include using namespace std; int k; char buf[100050]; char lcase(char c) { if(c<='Z' && c>='A') return c-'A'+'a'; else return c; } bool isAlpha(char c) { return lcase(c)>='a' && lcase(c)<='z'; } char hmap[1000010]; int hashFunc(char* cm) { int res=0; for(int i=0;i<26;i++) res^=cm[i]< que; //set combs; char currComb[26]; int main() { scanf("%d\n", &k); while(k!=0) { for(int i=0;i<1000010;i++) { hmap[i]=0; } gets(buf); int i=0; while(buf[i]!=0) { if(isAlpha(buf[i])) buf[i]=lcase(buf[i])-'a'; else buf[i]=200; i++; } int total=i; if(total<=k) { //printf("%d\n", total); continue; } int cnt=0; i=0; //printf("k:%d", k); while(i100)) { cnt++; //printf("emptyInc\n"); } if(cnt==total) break; currComb[que.front()]--; que.pop(); que.push(buf[cnt]); currComb[buf[cnt]]++; if(htContains(currComb)) { break; } htInsert(currComb); } printf("%d\n", cnt); scanf("%d\n", &k); } return 0; }