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

vector<pair<int,int>> edges;

void clear(int k) {
    vector<pair<int,int>> v;
    for (int i=0; i<(int)edges.size(); ++i) {
        if (edges[i].first != k && edges[i].second != k) {
            v.push_back(edges[i]);
        }
    }
    edges = v;
}

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

    edges.clear();
    for (int i=0; i<n; ++i) {
        cin >> x >> y;
        edges.push_back(make_pair(x, y));
    }

    bool used[21] = {};
    for (int i=0; i<m; ++i) {
        for (int sus=1; sus<=m; ++sus) {
            if (used[sus]) continue;
            bool ok = true;
            for (int k=0; k<(int)edges.size(); ++k) {
                if (edges[k].second == sus) {
                    ok = false;
                    break;
                }
            }
            if (ok) {
                cout << sus << endl;
                clear(sus);
                used[sus] = true;
                break;
            }
        }
    }
    return 0;
}