https://www.luogu.org/problem/P5022
// luogu-judger-enable-o2
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
using namespace std;
const int maxn=5005;
int n,m,cnt,del;
int ans[maxn],start[maxn],to[maxn],cur[maxn];
vector<int> v[maxn];
inline int read(){
int ss = 0, ww = 1; char ch = getchar();
while(ch < '0' || ch > '9'){ if(ch == '-') ww = -1; ch = getchar(); }
while(ch >= '0' && ch <= '9') ss = ss * 10 + ch - '0', ch = getchar();
return ss*ww;
}
inline bool check() {
if(cnt != n) return false;
for(int i=1;i<=n;i++) if(cur[i]!=ans[i]) return ans[i]>cur[i];
}
void dfs(int u,int f) {
if(cnt>n) return ;
cur[++cnt]=u;
for(int i=0;i<v[u].size();i++) {
if(v[u][i]==f || (u==start[del]&&v[u][i]==to[del]) || (v[u][i]==start[del]&&u==to[del])) continue;
dfs(v[u][i],u);
}
}
int main() {
memset(ans,64,sizeof(ans));
n=read(),m=read();
for(int i=1;i<=m;i++) {
int x=read(),y=read();
v[x].push_back(y);
v[y].push_back(x);
start[i]=x;to[i]=y;
}
for(int i=1;i<=n;i++) sort(v[i].begin(),v[i].end());
if(m==n-1) {
del=0;cnt=0;
dfs(1,0);
memcpy(ans,cur,sizeof(cur));
} else {
for(int i=1;i<=m;i++) {
memset(cur,0,sizeof(cur));
del=i;cnt=0;
dfs(1,0);
if(check() ) {
memcpy(ans,cur,sizeof(cur));
}
}
}
for(int i=1;i<=n;i++) printf("%d ",ans[i]);
return 0;
}