#include <fstream>
#include <vector>
#include <list>
std::ifstream be ("ciclueuler.in");
std::ofstream ki ("ciclueuler.out");
int n, m;
std::vector< std::list<int> > x;
std::vector< int > kor;
void euler (int csp)
{
int csp2;
for (std::list<int>::iterator i=x[csp].begin(); i!=x[csp].end(); i++) {
csp2 = *i;
x[csp].erase(i);
euler (csp2);
}
kor.push_back(csp);
}
int main()
{
be >> n >> m;
x.resize (n+1, std::list<int>(n+1));
int a, b, i;
for (i=0; i<m; i++) {
be >> a >> b;
x[a].push_back(b);
}
euler (1);
for (std::vector<int>::reverse_iterator i=kor.rbegin(); i<kor.rend(); i++) ki << *i << " ";
if (kor.size() == 0) ki << -1;
}