#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5 + 10, M = 4e5 + 10;
int h[N], e[M], ne[M], idx;
int n, m, color[N];
bool flag;
void add(int a, int b) // 添加一条边a->b
{
e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}
bool dfs(int u, int col)
{
color[u] = col;
for (int i = h[u]; ~i; i = ne[i])
{
int j = e[i];
if (!color[j])
{
if (!dfs(j, 3 - col)) return false;
}
else if (col == color[j]) return false;
}
return true;
}
signed main()
{
memset(h, -1, sizeof h);
cin >> n >> m;
int a, b;
while (m -- )
{
cin >> a >> b;
add(a, b), add(b, a);
}
if (n == 1) cout << 1 << endl;
else if (dfs(1, 1)) cout << 2 << endl;
else cout << 3 << endl;
return 0;
}