#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
vector< vector<int> > muchii(50005);
queue<int> coada;
bool fol[50005];
int n, m, nrNod;
int main()
{
in>>n>>m;
for(int i = 1; i <= m; ++i){
int x, y;
in>>x>>y;
muchii[x].push_back(y);
}
coada.push(1);
while(nrNod != n){
int nod = coada.front();
coada.pop();
if(fol[nod])continue;
nrNod++;
for(size_t i = 0; i < muchii[nod].size(); ++i){
coada.push(muchii[nod][i]);
}
out<<nod<<" ";
}
in.close();
out.close();
return 0;
}