#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <ctime>
#define x first
#define y second
#define LL long long
#define DN 50005
#define MOD 1000000007
using namespace std;
typedef pair<int, int> per;
typedef vector<int>::iterator it;
typedef set<int>::iterator is;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m;
vector<int> gr[DN];
vector<int> st;
bitset<DN> viz;
void dfs(int s) {
viz[s]=1;
for(it i=gr[s].begin(); i!=gr[s].end(); ++i) if(!viz[*i]){
dfs(*i);
}
st.push_back(s);
}
int main() {
f>>n>>m;
for(;m--;) {
int a,b;
gr[a].push_back(b);
}
for(int i=1; i<=n; ++i) if(!viz[i]) dfs(i);
for(int i=0; i<st.size(); --i) g<<st[i]<<' ';
}