#include <fstream>
#include <vector>
#include <iterator>
using namespace std;
vector<int> lista;
void sort(int csucs, vector<int>* utak, bool* notVisited) {
notVisited[csucs] = false;
for (vector<int>::iterator it = utak[csucs].begin();it != utak[csucs].end();it++)
if(notVisited[*it]) sort(*it, utak, notVisited);
lista.push_back(csucs);
}
int main() {
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int N, M;
in >> N >> M;
vector<int> *utak = new vector<int>[N];
for (;M;--M) {
int honnan, hova;
in >> honnan >> hova;
utak[honnan-1].push_back(hova-1);
}
bool* notVisited = new bool[N];
for (int i = 0;i < N;++i)
if (notVisited[i]) sort(i,utak,notVisited);
while (!lista.empty()) {
out << lista.back()+1 << " ";
lista.pop_back();
}
}