#include <iostream>
#include <string>
#include <cstring>
#include <vector>
#include <climits>
using namespace std;

struct Edge { int from, to; };
vector<Edge> edges;

int main() {
    int m, n, x, y;
    cin >> m >> n;

    edges.clear();
    int c[21] = {};
    for (int i=0; i<n; ++i) {
        cin >> x >> y;
        edges.push_back((Edge){x, y});
        c[y] ++;
    }

    for (int i=0; i<m; ++i) {
        for (int su=1; su<=m; ++su) {
            if (c[su] != 0) continue;
            cout << su << endl;
            c[su] = INT_MAX;
            for (int j=0; j<n; ++j) {
                if (edges[j].from == su) {
                    c[edges[j].to] --;
                }
            }
            break;
        }
    }
    return 0;
}