#include<bits/stdc++.h>
using namespace std;
int graph[1001][1001];
int visit[1001];
int n, e;
vector<int>ans;
void dfs(int start)
{
visit[start] = 1;
for(int j = 1; j <= n; j++)
{
if(visit[j] == 0 && graph[start][j] != 0)
{
visit[j] = 1;
dfs(j);
}
}
ans.push_back(start);
}
int main()
{
cin>>n>>e;
int u, v;
for(int i = 1; i <= e; i++)
{
cin>>u>>v;
graph[u][v] = 1;
}
for(int i = 1; i <= n; i++)
{
if(visit[i] == 0)
{
dfs(i);
}
}
for(int i = ans.size()-1; i >= 0; i--)
{
cout<<ans[i]<<" ";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGdyYXBoWzEwMDFdWzEwMDFdOwppbnQgdmlzaXRbMTAwMV07CmludCBuLCBlOwp2ZWN0b3I8aW50PmFuczsKCnZvaWQgZGZzKGludCBzdGFydCkKewogICAgdmlzaXRbc3RhcnRdID0gMTsKCiAgICBmb3IoaW50IGogPSAxOyBqIDw9IG47IGorKykKICAgIHsKICAgICAgICBpZih2aXNpdFtqXSA9PSAwICYmIGdyYXBoW3N0YXJ0XVtqXSAhPSAwKQogICAgICAgIHsKICAgICAgICAgICAgdmlzaXRbal0gPSAxOwogICAgICAgICAgICBkZnMoaik7CiAgICAgICAgfQogICAgfQogICAgYW5zLnB1c2hfYmFjayhzdGFydCk7Cn0KCmludCBtYWluKCkKewogICAgY2luPj5uPj5lOwogICAgaW50IHUsIHY7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IGU7IGkrKykKICAgIHsKICAgICAgICBjaW4+PnU+PnY7CiAgICAgICAgZ3JhcGhbdV1bdl0gPSAxOwogICAgfQoKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIGlmKHZpc2l0W2ldID09IDApCiAgICAgICAgewogICAgICAgICAgICBkZnMoaSk7CiAgICAgICAgfQogICAgfQoKICAgIGZvcihpbnQgaSA9IGFucy5zaXplKCktMTsgaSA+PSAwOyBpLS0pCiAgICB7CiAgICAgICAgY291dDw8YW5zW2ldPDwiICI7CiAgICB9CgoKCgoKfQo=