/*
* @Description: 哥尼斯堡的“七桥问题”
* @version:
* @Author:
* @Date: 2021-04-01 17:24:06
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-04-01 18:39:39
*/
#include <iostream>
#include <vector>
using namespace std;
vector<int> v[1002];
vector<bool> visit;
void DFS(int i)
{
visit[i] = true;
if (v[i].size() == 0)
return;
while (true)
{
if (v[i].empty())
return;
if (visit[v[i][0]])
v[i].erase(v[i].begin());
else
break;
}
DFS(v[i][0]);
}
bool check()
{
for (int i = 1; i < visit.size(); i++)
{
if (visit[i] == false)
return false;
}
return true;
}
int main(void)
{
int dot, side;
cin >> dot >> side;
visit.push_back(false);
vector<int> count;
for (int i = 1; i <= dot; i++)
{
count.push_back(0);
visit.push_back(false);
}
for (int i = 0; i < side; i++)
{
int a, b;
cin >> a >> b;
// 记录每个结点的度数,根据离散数学知识,若每个结点度数为偶数且是连通图则存在欧拉回路
v[a].push_back(b);
v[b].push_back(a);
count[a]++;
count[b]++;
}
DFS(1);
if (!check())
{
cout << "0" << endl;
return 0;
}
else
{
for (int i = 1; i <= dot; i++)
{
if (count[i] & 1)
{
cout << "0" << endl;
return 0;
}
}
}
cout << 1 << endl;
system("pause");
return 0;
}