#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[10010][10010]={0};
int l[10010]={0};
int d[10010]={0};
int b[10010]={0};
void dfs(int x){
if(d[x]==0){
printf("%d ",x);
d[x]=1;
}
int i;
for(i=0;i<l[x];i++)
dfs(a[x][i]);
}
void bfs(int x){
queue<int>q;
q.push(x);
printf("%d ",x);
b[x]=1;
while(!q.empty()){
int f=q.front();
for(int i=0;i<l[f];i++){
if(b[a[f][i]]==0){
printf("%d ",a[f][i]);
b[a[f][i]]=1;
q.push(a[f][i]);
}
}
q.pop();
}
}
int main(){
cin>>n>>m;
int i,j,u,v;
for(i=1;i<=m;i++){
scanf("%d %d",&u,&v);
a[u][l[u]++]=v;
}
for(i=1;i<=n;i++){
if(l[i]!=0){
dfs(i);
printf("\n");
bfs(i);
break;
}
}
return 0;
}