#include #include #include #include #include #include #include #include #define REP(i,n) for(int i=0; i5) return; REP(j,5*n+1) { tab[num][j].first=0; tab[num][j].cycle=0; } tab[num][i].first=1; ll k=2; i=next(i); while(tab[num][i].first==0) { tab[num][i].first=k++; i=next(i); } ll len=k-1; while(tab[num][i].cycle==0) { tab[num][i].cycle=len; //cerr<<"num: "<> temp; process(temp, i+1); } ll best = -1; ll player = -1; REP(i,n) { int perm[] = {1,2,3,4,5}; do { card a[5]; a[0] = tab[perm[0]][2*i+1]; a[1] = tab[perm[1]][2*i+2]; a[2] = tab[perm[2]][2*i+2*n+1]; a[3] = tab[perm[3]][2*i+2*n+2]; a[4] = tab[perm[4]][i+4*n+1]; bool good = false; REP(j,5) { if(a[j].first == 0) good = true; } if(good) continue; //if(i==0) //{ // cerr<<"Player "<> n; while(n) { go(); cin >> n; } return 0; }