/*
*
* soon on twitch : ex3qute
*
* ax ah al
* kwxkwxkxkxwkxkwxkw
* dumnezeu sa o ierte
*/
#include <bits/stdc++.h>
using namespace std;
#define ull unsigned long long
#define ll long long
#define pb push_back
#define fastio ios_base::sync_with_stdio(0); cin.tie(nullptr);
const int MOD = 1e9+7;
int di[4]={0,0,-1,1};
int dj[4]={-1,1,0,0};
const string FILENAME = "sortaret";
ifstream f(FILENAME + ".in");
ofstream g(FILENAME + ".out");
#ifndef exe
#define cin f
#define cout g
#endif
struct node {
int info;
node* nxt;
};
node* ls = nullptr;
int a[5001][5001];
int vz[50001];
int n,m;
void dfs(int k) {
vz[k] = 1;
for(int i=1;i<=n;++i) {
if(a[k][i] && !vz[i]) dfs(i);
}
// ins
node* tmp = new node;
tmp->info = k;
if(!ls) {
ls = tmp;
tmp->nxt = nullptr;
}
else {
tmp->nxt = ls;
ls = tmp;
}
}
signed main(){
cin >> n >> m;
for(int i=1;i<=m;++i) {
int x,y;
cin >> x >> y;
a[x][y] = 1;
}
for(int i=1;i<=n;++i) {
if(!vz[i]) dfs(i);
}
node* t = ls;
while(t) {
cout << t->info << ' ';
t = t->nxt;
}
return 0;
}