#include<iostream>#include<cstring>using namespace std;const int SIZE=100;int n,m,r[SIZE];bool map[SIZE][SIZE],found;bool successful(){ int i; for(i=1;i<=n;i++) if(!map[r[i]][r[i%n+1]]) return false; return true;}void swap(int *a,int *b){ int t; t=*a; *a=*b; *b=t;}void perm(int left,int right){ int i; if(found) return ; if(left>right) { if(successful()) { for(i=1;i<=n;i++) cout<<r[i]<<' '; found=true; } return ; } for(i=left;i<=right;i++) { swap(r+left,r+i); perm(left+1,right); swap(r+left,r+i); }}int main(){ int x,y,i; cin>>n>>m; memset(map,false,sizeof(map)); for(i=1;i<=m;i++) { cin>>x>>y; map[x][y]=true; map[y][x]=true; } for(i=1;i<=n;i++) r[i]=i; found=false; perm(1,n); if(!found) cout<<"No solution!"<<endl; return 0;}输入: 9 12 1 2 2 3 3 4 4 5 5 6 6 1 1 7 2 7 3 8 4 8 5 9 6 9 输出:_________