1 #include <iostream>
2 #include <cstdio>
3 #include <cstdlib>
4 #include <cstring>
5 #include <cmath>
6 #include <cctype>
7 #include <vector>
8 #include <list>
9 #include <deque>
10 #include <stack>
11 #include <queue>
12 #include <map>
13 #include <set>
14 #include <string>
15 #include <algorithm>
16
17
18 using namespace std;
19
20
21 vector<int>vt[1000];
22
23 int d[1000];
24 int vis[1000];
25
26
27
28 int bfs(int v)
29 {
30 vis[v]=1;
31
32 queue<int>q;
33
34 q.push(v);
35 while(q.size())
36 {
37 int ans=q.front();
38 q.pop();
39
40 for(int i=0;i<vt[ans].size();i++)
41 {
42 if(vis[vt[ans][i]]==0)
43 {
44 vis[vt[ans][i]]=1;
45 q.push(vt[ans][i]);
46 }
47 }
48 }
49 return 0;
50 }
51
52
53
54 int main()
55 {
56
57 int n,m;
58 int i,j,k;
59
60 while(scanf("%d",&n)!=EOF)
61 {
62 if(n==0)
63 break;
64
65 scanf("%d",&m);
66
67 for(i=1;i<=n;i++)
68 {d[i]=0;vt[i].clear();}
69
70
71
72 for(i=0;i<m;i++)
73 {
74 int a,b;
75 scanf("%d%d",&a,&b);
76 vt[a].push_back(b);
77 vt[b].push_back(a);
78
79
80 d[a]++;
81 d[b]++;
82 }
83
84
85 for(i=1;i<=n;i++)
86 vis[i]=0;
87
88
89 bfs(1);
90
91 for(i=1;i<=n;i++)
92 if(vis[i]==0)
93 break;
94
95 if(i<=n)
96 {
97 printf("0");
98
99 }
100 else
101 {
102 for(i=1;i<=n;i++)
103 if(d[i]%2!=0)
104 break;
105
106 if(i<=n)
107 {
108 printf("0");
109 }
110 else
111 printf("1");
112 }
113
114 puts("");
115 }
116
117
118
119
120
121
122
123
124 return 0;
125 }