#include int main(void) { int pole[26000][130]; int i,j,lidi,k,a,b,nalezen,i2,x,y,moc; char c; while ((c=getchar())!=EOF) { ungetc(c,stdin); scanf("%d%d ",&lidi,&k); for (i=0; i<=lidi; i++) for (j=0; j<=k; j++) pole[j][i]=0; for (i=0; i0 && !nalezen) { if (pole[j][a]==1) { pole[j][b]=1; pole[0][b]++;nalezen=1;pole[j][0]++;} else if (pole[j][b]==1) { pole[j][a]=1; pole[0][a]++;nalezen=1;pole[j][0]++;} } if (!nalezen) { pole[j][0]=1; pole[j][a]=1;pole[0][a]++; pole[j][b]=1;pole[0][b]++; } } i=1; moc=0; while (pole[i][0]>0) { if (pole[i][0]>1000) moc=1; i++; } if (moc==0) { for (i=1; i<=lidi; i++) { if (pole[0][i]>1) { j=0; /*i2=i;*/ while (j1000) goto moooc; pole[x][y]=0; /*pole[0][y]--;*/ /* pole[x][i]=0; pole[x][0]--;*/ } } for (y=i-1; y>=1; y--) { if (pole[x][y]==1) { pole[i2][y]=1; pole[i2][0]++; if (pole[i2][0]>1000) goto moooc; pole[x][y]=0; /*pole[0][y]--;*/ /* pole[x][i]=0; pole[x][0]--;*/ } } pole[x][i]=0; pole[x][0]--; /*pole[0][i]--;*/ j++; } } } x=0; for (i=1; i<=k; i++) { if (pole[i][0]>x) x=pole[i][0]; } if (x<=1000) printf("%d\n",x); } else moooc: printf("Too many maximal sets of friends.\n"); } return 0; }