#include<stdio.h>
#include<string.h>//此图为无向图
#define N 1100
int indegree[N];
int pre[N];
int map[N][N];
int find(int x) {
if(x!=pre[x])
pre[x]=find(pre[x]);
return pre[x];
}
int main() {
int n,m,a,b,i,j,ans;
while(scanf("%d",&n),n) {
scanf("%d",&m);
for(i=1;i<=n;i++)
pre[i]=i;
memset(map,0,sizeof(map));
memset(indegree,0,sizeof(indegree));
while(m--) {
scanf("%d%d",&a,&b);
if(map[a][b]==0) {
map[a][b]=map[b][a]=1;
indegree[b]++;
indegree[a]++;
if(find(a)!=find(b))
pre[find(b)]=find(a);
}
}
ans=0;
for(i=1;i<=n;i++)
if(pre[i]==i)
ans++;
if(ans>1) {//是否连通
printf("0
");
continue;
}
ans=0;
for(i=1;i<=n;i++)//判断是否有奇度顶点
if(indegree[i]%2==1) {
ans=1;
break;
}
if(ans)
printf("0
");
else
printf("1
");
}
return 0;
}