#include<bits/stdc++.h>
using namespace std;
struct lymy{
int u,v;
};
int n,m;
bool pd[100001];
vector <lymy> p;
vector <int> p1[100001];
queue <int> q;
bool cmp(lymy q,lymy w)
{
if(q.u==w.u)return q.v<w.v;
else return q.u<w.u;
}
void dfs(int x)
{
cout<<x<<" ";
int ly=p1[x].size();
for(int i=0;i<ly;i++)
{
if(!pd[p1[x][i]])
{
pd[p1[x][i]]=true;
dfs(p1[x][i]);
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int a,b;
cin>>a>>b;
p.push_back((lymy){a,b});
}
sort(p.begin(),p.end(),cmp);
for(int i=0;i<m;i++)
{
p1[p[i].u].push_back(p[i].v);
}
dfs(1);
cout<<endl;
memset(pd,0,sizeof(pd));
pd[1]=true;
q.push(1);
while(!q.empty())
{
int x=q.front();
q.pop();
cout<<x<<" ";
int ly=p1[x].size()
for(int i=0;i<ly;i++)
{
if(!pd[p1[x][i]])
{
pd[p1[x][i]]=true;
q.push(p1[x][i]);
}
}
}
return 0;
}
求调