#include<bits/stdc++.h>
using namespace std;
bool a[11][11];
bool visit[11];
int n,m;
bool fl;
int answer[12];
int p;
void dfs(int now,int step){
if(step==n){
fl=1;
}
for(int i=n;i>0;i--){
if(a[i][now]==1&&visit[i]==0){
visit[i]=1;
dfs(i,step+1);
visit[i]=0;
}
if(fl==1){
answer[p++]=now;
return;
}
}
return;
}
int main(){
cin>>n>>m;
for(int i=0;i<m;i++){
int u,v;
cin>>u>>v;
a[u][v]=a[v][u]=1;
}
visit[1]=1;
dfs(1,1);
if(fl==1){
cout<<"OK!"<<endl<<1<<' ';
for(int j=0;j<n;j++){
cout<<answer[j]<<' ';
}
}
else cout<<"Impossible!";
return 0;
}
|