#include #include #include int n,m,cnt,mini[500005],ans[500005],u[500005],v[500005];bool vis[500005];std::set e[500005];inline bool cmp(const int *a,const int *b,int now){ for(int i=1;i<=now;i++){ if(a[i] b[i])return false; } return true;}inline void dfs(int u){ vis[u]=1; ans[++cnt]=u; if(!cmp(ans,mini,cnt))return; if(cnt==n){ for(int i=1;i<=n;i++)mini[i]=ans[i]; } for(std::set ::iterator it=e[u].begin();it!=e[u].end();it++){ int v=*it; if(!vis[v]){ dfs(v); } }}int main(){ memset(mini,0x3f,sizeof(mini)); scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ scanf("%d%d",&u[i],&v[i]); e[u[i]].insert(v[i]); e[v[i]].insert(u[i]); } if(n==m){ for(int i=1;i<=m;i++){ if(i>1){ e[u[i-1]].insert(v[i-1]); e[v[i-1]].insert(u[i-1]); } e[u[i]].erase(v[i]); e[v[i]].erase(u[i]); cnt=0; memset(vis,0,sizeof(vis)); vis[1]=1; dfs(1); } } else{ dfs(1); } for(int i=1;i<=n;i++){ printf("%d ",mini[i]); } }