#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int n,m;
int vis[1001000];
int flg[1001000];
vector <int > p[1000005];
queue <int> q;
void solve (int x){
cout<<x<<' ';
for(int i=0;i<p[x].size();i++)
{
if(!vis[p[x][i]])
{
vis[p[x][i]] = 1;
solve(p[x][i]);
}
}
}
int main(){
cin>>n>>m;
int u,v;
for(int i=1;i<=m;i++)
{
cin>>u>>v;
p[u].push_back(v);
}
vis[1]=1;
solve (1);
cout<<endl;
flg[1] = 1;
q.push(1);
while(!q.empty()){
int x = q.front();
q.pop();
cout<<x<<' ';
for(int i = 0;i<p[x].size();i++)
if(!flg[p[x][i]]){
flg[p[x][i]] = 1;
q.push(p[x][i]);
}
}
return 0;
}