#include<set>
#include<map>
#include<list>
#include<iomanip>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<complex>
#include<sstream>
#include<iostream>
#include<fstream>
#include<algorithm>
#include<numeric>
#include<utility>
#include<functional>
#include<stdio.h>
#include<assert.h>
#include<memory.h>
#include<bitset>
using namespace std;
#define pb push_back
#define MP make_pair
int n, m, s, e;
int vis[100];
vector<vector<int> >adj;
vector<int> topsort;
void dfs(int node)
{
vis[node] = 1;
for (int i = 0; i < adj[node].size(); i++)//visit all the son of node before printing it
if (!vis[adj[node][i]])//visit not visited nodes
dfs(adj[node][i]);
topsort.push_back(node);//after visting all it's sons push it to be printed
}
int main()
{
while (cin >> n >> m && n && m)
{
adj.resize(n + 1);
for (int i = 0; i < m; i++)
{//building graph
cin >> s >> e;
adj[e - 1].push_back(s - 1);//node start should happen before node end
}
for (int i = 0; i < n; i++)
if (!vis[i])//dfs from every node
dfs(i);
for (int i = 0; i < topsort.size(); i++)
{
cout << topsort[i] + 1;
if (i != topsort.size() - 2)
cout << " ";
}
cout << endl;
}
return 0;
}
I2luY2x1ZGU8c2V0PgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGxpc3Q+CiNpbmNsdWRlPGlvbWFuaXA+CiNpbmNsdWRlPGNtYXRoPgojaW5jbHVkZTxzdHJpbmc+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8cXVldWU+CiNpbmNsdWRlPHN0YWNrPgojaW5jbHVkZTxjb21wbGV4PgojaW5jbHVkZTxzc3RyZWFtPgojaW5jbHVkZTxpb3N0cmVhbT4KI2luY2x1ZGU8ZnN0cmVhbT4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxudW1lcmljPgojaW5jbHVkZTx1dGlsaXR5PgojaW5jbHVkZTxmdW5jdGlvbmFsPgojaW5jbHVkZTxzdGRpby5oPgojaW5jbHVkZTxhc3NlcnQuaD4KI2luY2x1ZGU8bWVtb3J5Lmg+CiNpbmNsdWRlPGJpdHNldD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBwYgkJCQkJcHVzaF9iYWNrCiNkZWZpbmUgTVAJCQkJCW1ha2VfcGFpcgppbnQgbiwgbSwgcywgZTsKaW50IHZpc1sxMDBdOwp2ZWN0b3I8dmVjdG9yPGludD4gPmFkajsKdmVjdG9yPGludD4gdG9wc29ydDsKdm9pZCBkZnMoaW50IG5vZGUpCnsKCXZpc1tub2RlXSA9IDE7Cglmb3IgKGludCBpID0gMDsgaSA8IGFkaltub2RlXS5zaXplKCk7IGkrKykvL3Zpc2l0IGFsbCB0aGUgc29uIG9mIG5vZGUgYmVmb3JlIHByaW50aW5nIGl0IAoJaWYgKCF2aXNbYWRqW25vZGVdW2ldXSkvL3Zpc2l0IG5vdCB2aXNpdGVkIG5vZGVzIAoJCWRmcyhhZGpbbm9kZV1baV0pOwoJdG9wc29ydC5wdXNoX2JhY2sobm9kZSk7Ly9hZnRlciB2aXN0aW5nIGFsbCBpdCdzIHNvbnMgcHVzaCBpdCB0byBiZSBwcmludGVkCn0KaW50IG1haW4oKQp7CgoKCXdoaWxlIChjaW4gPj4gbiA+PiBtICYmIG4gJiYgbSkKCXsKCQkKCQlhZGoucmVzaXplKG4gKyAxKTsKCQlmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykKCQl7Ly9idWlsZGluZyBncmFwaAoJCQljaW4gPj4gcyA+PiBlOwoJCQlhZGpbZSAtIDFdLnB1c2hfYmFjayhzIC0gMSk7Ly9ub2RlIHN0YXJ0IHNob3VsZCBoYXBwZW4gYmVmb3JlIG5vZGUgZW5kCgkJfQoJCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJCWlmICghdmlzW2ldKS8vZGZzIGZyb20gZXZlcnkgbm9kZSAKCQkJZGZzKGkpOwoJCWZvciAoaW50IGkgPSAwOyBpIDwgdG9wc29ydC5zaXplKCk7IGkrKykKCQl7CgkJCWNvdXQgPDwgdG9wc29ydFtpXSArIDE7CgkJCWlmIChpICE9IHRvcHNvcnQuc2l6ZSgpIC0gMikKCQkJCWNvdXQgPDwgIiAiOwoKCQl9CgkJCWNvdXQgPDwgZW5kbDsKCX0KCXJldHVybiAwOwoKfQ==