#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 9;
int n, m;
vector<int> g[N];
bool vis[N];
int col[N];
int c1, c2;
bool dfs(int u, int sel) {
//不用设置fa,因为有vis
vis[u] = true;
col[u] = sel;
if(sel == 1)
c1++;
else
c2++;
for(int v : g[u]) {
if(vis[v]) {
if(col[v] == col[u])
return false;//颜色冲突
continue;
}
dfs(v, sel == 1 ? 2 : 1);
}
return true;
}
signed main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
memset(vis, 0, sizeof(vis));
cin >> n >> m;
for(int i = 1; i <= m; i++) {
int u, v; cin >> u >> v;
g[u].push_back(v), g[v].push_back(u);
}
int ans = 0;
for(int i = 1; i <= n; i++) {
if(!vis[i]) {
c1 = c2 = 0;
if(dfs(i, 1)) {
ans += min(c1, c2);
} else {
cout << "Impossible" << '\n';
return 0;
}
}
}
cout << ans << '\n';
return 0;
}