#include #include #include #include #include #include #define M 1003 #define INF 100000000 using namespace std; int mark[M][M]; int n,A[M]={0}; int check(int a){ int i,j,res=0; for(i=1;i<=n;i++){ if(mark[i][a]){ mark[i][a]=0; mark[a][i]=0; res++; A[res]=i; } } if(res==1)return check(A[res]); if(res==0)return 0; for(i=1;i<=res;i++){ for(j=1;j<=n;j++) if(mark[A[i]][j]) return 1; }return 0; } int solve(){ bool flag=1; int i,j; int res=0; for(i=1;i<=n;i++){ if(mark[i][1]){ mark[i][1]=0; mark[1][i]=0; res++; A[res]=i; } } if(res==0)return 0; if(res>=2){ for(i=1;i<=res;i++) for(j=1;j<=n;j++) if(mark[A[i]][j]) return 1; return 0; }else if(res==1){ return check(A[res]); } } int main(){ int m,i,j,a,b; while(scanf("%d",&n)!=EOF){ memset(mark,0,sizeof(mark)); for(i=1;i