#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef vector<int> vi;
typedef pair<int,int> ii;
typedef vector<ii> vii;
#define F(i,a,b) for(int i = (int)(a); i <= (int)(b); i++)
#define RF(i,a,b) for(int i = (int)(a); i >= (int)(b); i--)
#define MOD 1000000007
#define DFS_WHITE -1
#define DFS_BLACK 1
class Graph
{
private:
int V;
vector<vii> AdjList;
void dfs_util(int v, int dfs_num[]);
public:
Graph(int V);
void addEdge(int u, int v, int wt);
void dfs();
};
Graph::Graph(int V)
{
this->V = V;
AdjList.assign(V, vii());
}
void Graph::addEdge(int u, int v, int wt)
{
AdjList[u].push_back(ii(v,wt));
}
void Graph::dfs_util(int u, int dfs_num[])
{
printf("Visiting %d\n",u);
dfs_num[u] = DFS_BLACK;
for(int j = 0; j < (int)AdjList[u].size(); j++)
{
ii v = AdjList[u][j];
if(dfs_num[v.first] == DFS_WHITE)
dfs_util(v.first, dfs_num);
}
}
void Graph::dfs()
{
int dfs_num[V];
F(i,0,V-1) dfs_num[i] = -1;
F(i,0,V-1)
{
if(dfs_num[i] == DFS_WHITE)
dfs_util(i,dfs_num);
}
}
int main()
{
int N,M,u,v;
scanf("%d%d",&N,&M);
Graph G(N);
F(i,0,M-1)
{
scanf("%d%d",&u,&v);
G.addEdge(u,v,0);
}
G.dfs();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgbGw7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgcGFpcjxpbnQsaW50PiBpaTsKdHlwZWRlZiB2ZWN0b3I8aWk+IHZpaTsKI2RlZmluZSBGKGksYSxiKSBmb3IoaW50IGkgPSAoaW50KShhKTsgaSA8PSAoaW50KShiKTsgaSsrKQojZGVmaW5lIFJGKGksYSxiKSBmb3IoaW50IGkgPSAoaW50KShhKTsgaSA+PSAoaW50KShiKTsgaS0tKQojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CiNkZWZpbmUgREZTX1dISVRFIC0xCiNkZWZpbmUgREZTX0JMQUNLIDEKCmNsYXNzIEdyYXBoCnsKcHJpdmF0ZToKICAgIGludCBWOwogICAgdmVjdG9yPHZpaT4gQWRqTGlzdDsKICAgIHZvaWQgZGZzX3V0aWwoaW50IHYsIGludCBkZnNfbnVtW10pOwpwdWJsaWM6CiAgICBHcmFwaChpbnQgVik7CiAgICB2b2lkIGFkZEVkZ2UoaW50IHUsIGludCB2LCBpbnQgd3QpOwogICAgdm9pZCBkZnMoKTsKfTsKCkdyYXBoOjpHcmFwaChpbnQgVikKewogICAgdGhpcy0+ViA9IFY7CiAgICBBZGpMaXN0LmFzc2lnbihWLCB2aWkoKSk7Cn0KCnZvaWQgR3JhcGg6OmFkZEVkZ2UoaW50IHUsIGludCB2LCBpbnQgd3QpCnsKICAgIEFkakxpc3RbdV0ucHVzaF9iYWNrKGlpKHYsd3QpKTsKfQoKdm9pZCBHcmFwaDo6ZGZzX3V0aWwoaW50IHUsIGludCBkZnNfbnVtW10pCnsKICAgIHByaW50ZigiVmlzaXRpbmcgICVkXG4iLHUpOwogICAgZGZzX251bVt1XSA9IERGU19CTEFDSzsKICAgIGZvcihpbnQgaiA9IDA7IGogPCAoaW50KUFkakxpc3RbdV0uc2l6ZSgpOyBqKyspCiAgICB7CiAgICAgICAgaWkgdiA9IEFkakxpc3RbdV1bal07CiAgICAgICAgaWYoZGZzX251bVt2LmZpcnN0XSA9PSBERlNfV0hJVEUpCiAgICAgICAgICAgIGRmc191dGlsKHYuZmlyc3QsIGRmc19udW0pOwogICAgfQp9CnZvaWQgR3JhcGg6OmRmcygpCnsKICAgIGludCBkZnNfbnVtW1ZdOwogICAgRihpLDAsVi0xKSBkZnNfbnVtW2ldID0gLTE7CiAgICBGKGksMCxWLTEpCiAgICB7CiAgICAgICAgaWYoZGZzX251bVtpXSA9PSBERlNfV0hJVEUpCiAgICAgICAgICAgIGRmc191dGlsKGksZGZzX251bSk7CiAgICB9Cgp9CmludCBtYWluKCkKewogICAgaW50IE4sTSx1LHY7CiAgICBzY2FuZigiJWQlZCIsJk4sJk0pOwogICAgR3JhcGggRyhOKTsKICAgIEYoaSwwLE0tMSkKICAgIHsKICAgICAgICBzY2FuZigiJWQlZCIsJnUsJnYpOwogICAgICAgIEcuYWRkRWRnZSh1LHYsMCk7CiAgICB9CiAgICBHLmRmcygpOwogICAgcmV0dXJuIDA7Cn0KCg==