#include<bits/stdc++.h>
using namespace std;
int f[100001];
void Init()
{
for(int i=1;i<=100000;i++)
{
f[i]=i;
}
}
int find(int x)
{
while(x != f[x])
{
x = f[x];
}
return x;
}
bool Union(int x,int y)
{
int fax = find(x);
int fay = find(y);
if(fax == fay)
{
return false;
}
else
{
f[fax]=fay;
return true;
}
}
bool ans=true;
void Judge()
{
int root;
int i;
while(i<=100000)
{
if(f[i]!=i)
{
root = find(i);
break;
}
i++;
}
for(int j=i+1;j<=100000;j++)
{
if(f[j]!=j)
{
if (find(j) != root) {
ans = false;
break;
}
}
}
}
int main()
{
int a,b;
Init();
while(true)
{
scanf("%d%d",&a,&b);
if(a==-1&&b==-1)
{
break;
}
if(a==0&&b==0)
{
Judge();
if(ans==true)
{
printf("1");
printf("\n");
}
else
{
printf("0");
printf("\n");
}
Init();
ans=true;
continue;
}
if(Union(a,b)==true)
{
continue;
}
else
{
ans=false;
continue;
}
}
}