#include "iostream" #include "vector" using namespace std; typedef struct{ vector <int> v; }Node; Node List[1000]; int a,b,m,n,max_country,country; bool visit[1000]; void Dfs(int country,int c) { cout<<c<<" "<<country<<endl; // int flag=0; if(max_country<country) max_country=country; for(int i=0;i<(List[c].v).size();i++) { if(!visit[List[c].v[i]]) { visit[c]=true; Dfs(country+1,List[c].v[i]); // flag=1; visit[c]=false; } } } int main() { //freopen("data.in","r",stdin); while(scanf("%d%d",&n,&m)!=EOF) { memset(visit,false,sizeof(visit)); for(int i=0;i<n;i++) (List[i].v).clear(); for(int i=1;i<=m;i++) { scanf("%d%d",&a,&b); (List[a].v).push_back(b); (List[b].v).push_back(a); } /* for(int j=0;j<n;j++) { for(int i=0;i<(List[j].v).size();i++) printf(" %d",List[j].v[i]); printf("/n"); } */ max_country=0; for(int i=0;i<n;i++) { if((List[i].v).size()==1) { printf("/n"); Dfs(1,i); } } if(max_country>6) printf("%d/n",max_country); else printf("Impossible/n"); } //while(1); return 0; }