#include
#include
#include
#include
#include
using namespace std;
int n, m;
vectorgraph[100005];
vectorrev_graph[100005];
vector v;
bool visited[100005];
stacks;
void dfs(int node){
visited[node]=true;
for(int i=0; i>n>>m;
for(int i=0; i>a>>b;
graph[a].push_back(b);
rev_graph[b].push_back(a);
}
memset(visited, false, sizeof visited);
memset(special, false, sizeof special);
for(int i=1; i<=n; i++){
if(!visited[i]){
dfs(i);
}
}
memset(visited, false, sizeof visited);
while(!s.empty()){
int node=s.top();
if(!visited[node]){
v.clear();
rev_dfs(node);
// cout << v.size() << endl;
if(v.size() > 1) {
for(int p = 0; p < v.size(); p++) {
special[v[p]] = true;
}
}
}
s.pop();
}
for(int i=1; i<=n; i++){
// cout<