#include "bits/stdc++.h"
#define ALL(obj) (obj).begin(),(obj).end()
#define RALL(obj) (obj).rbegin(),(obj).rend()
#define REP(i, n) for(int i = 0; i < int(n); i++)
#define FOR(i,n,m) for(int i = int(n); i < int(m); i++)
using namespace std;
typedef long long ll;
const int MOD = 1e9 + 7;
const int INF = MOD - 1;
const ll LLINF= 4e18;

int main() {
    int n, m; cin >> n >> m;
    vector<vector<int>> G(n);
    stack<int> sta;
    vector<int> in(n,0);// 入次数
    vector<int> ans;
    REP(i, m) {
        int a, b; cin >> a >> b;
        a--; b--;
        G[a].push_back(b);
        in[b]++;
    }// DAGか判定
// DAGなら最長経路を求める
// DAGでないなら-1
// nが頂点数
    REP(i, n) if (in[i] == 0) {
        sta.push(i);
    }
    while (!sta.empty()) {
        int p = sta.top(); sta.pop();
        ans.push_back(p);
        for (int v : G[p]) {
            in[v]--;
            if (in[v] == 0) {
                sta.push(v);
            }
        }
    }
    REP(i, ans.size()) {
        cout << ans[i]+1 << endl;
    }
}
