#include<bits/stdc++.h>
using namespace std;
const int N=1e4+5;
vector<int> e[N];
int vis[N],sum[N],colors[N];
void add_edge(int u,int v){
e[u].push_back(v);
e[v].push_back(u);
}
bool fill_color(int u,int color){
if(vis[u]){
if(colors[u]==color) return true;
else return false;
}
vis[u]=true;
sum[colors[u]=color]++;
bool flag=true;
for(int i=0;i<e[u].size();i++){
flag=flag&&fill_color(e[u][i],!color);
}
return flag;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int n,m;cin>>n>>m;
while(m--){
int u,v;cin>>u>>v;
add_edge(u,v);
}
int ans=0;
for(int i=1;i<=n;i++){
if(vis[i]) continue;
sum[1]=sum[0]=0;
if(!fill_color(1,0)){
cout<<"Impossible";
exit(0);
}
ans+=min(sum[1],sum[0]);
}
cout<<ans;
return 0;
}