#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
#define Max 100001
vector<int>arc[Max];
bool vex[Max];
int n=0;
int m=0;
void visit(int v)
{
cout<<v<<" ";
}
void BFS(int v)
{
visit(v);
vex[v]=true;
for(int i=1;i<=n;i++)
{
for(int j=0;j<arc[i].size();j++)
{
if(!vex[arc[i][j]])
{
visit(arc[i][j]);
vex[arc[i][j]]=true;
}
}
}
return;
}
void DFS(int v)
{
visit(v);
vex[v]=true;
for(int i=0;i<arc[v].size();i++)
{
if(!vex[arc[v][i]])
DFS(arc[v][i]);
}
return;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int x=0;
int y=0;
cin>>x>>y;
arc[x].push_back(y);
}
for(int i=1;i<=n;i++)
sort(arc[i].begin(),arc[i].end());
DFS(1);
cout<<endl;
for(int i=1;i<=n;i++)
vex[i]=false;
BFS(1);
}