#include<bits/stdc++.h>
using namespace std;
int a[1005][1005];
int vis[1005];
int n,m;
void bfs(int cur){
queue<int> q;
q.push(cur);
vis[cur]=1;
while(!q.empty()){
int head = q.front();
cout <<head<<" ";
q.pop();
for(int i=1;i<=n;i++){
if(a[head][i]&&!vis[i]){
vis[i]=1;
q.push(i);
}
}
}
}
void dfs(int cur){
vis[cur]=1;
cout<<cur<<" ";
for(int i=1;i<=n;i++){
if(a[cur][i]&& !vis[i]){
dfs(i);
}
}
}
int main(){
cin>>n>>m;
for(int i=0;i<m;i++){
int y,x;
cin>>x>>y;
a[x][y]=1;
}
dfs(1);
cout<<endl;
memset(vis,0,sizeof vis);
bfs(1);
}