#include<bits/stdc++.h>
using namespace std;
//int v[10010][10010];
vector <int> a[10010];
int color1[10010];
/*struct edege{
int from,to;
}; */
int aa(int pos,int sum,int color){
for(int i=0;i<a[pos].size();i++){
if(color1[a[pos][i]]==color){
return -1;
}
else{
if(color1[a[pos][i]]==2){
color1[a[pos][i]]=1-color;
if(color==0){
sum++;
}
return aa(a[pos][i],sum,1-color);
}
else{
continue;
}
}
}
return sum;
}
int main(){
int n,m,k=20000;
cin>>n>>m;
while(m--){
int u,v;
cin>>u>>v;
if(min(u,v)<k){
k=min(u,v);
}
a[u].push_back(v);
a[v].push_back(u);
}
for(int i=0;i<n;i++){
color1[i]=2;
}
if(aa(k,0,1)<0||aa(k,0,0)<0){
cout<<"Impossible";
}
else{
cout<<min(aa(k,0,1),aa(k,0,0));
}
return 0;
}