#include <bits/stdc++.h>
using namespace std;
const int N=1e5+1;
vector<int> edges[N];
int ok,dist[N];
inline void clear(){for(int i=1;i<N;i++)edges[i].clear();}
inline void dfs(int x,int pre){
if(!ok)return ;
for(int i=0;i<edges[x].size();i++){
if(edges[x][i]!=pre){
if(dist[edges[x][i]]){
ok=false;
return ;
}
dist[edges[x][i]]=true;
dfs(edges[x][i],x);
}
}
}
int main(){
int x,y;
while(true){
clear(),ok=true;
memset(dist,0,sizeof(dist));
scanf("%d%d",&x,&y);
if(x==-1&&y==-1)return 0;
edges[x].push_back(y);
edges[y].push_back(x);
int k=x;
while(scanf("%d%d",&x,&y)==2){
if(x==0&&y==0)break;
edges[x].push_back(y);
edges[y].push_back(x);
}
dist[k]=1;
dfs(k,-1);
printf("%d\n",ok);
}
return 0;
}