#include #include using namespace std; int main(){ int n,m,K; cin>>n>>m>>K; vector> g(n); atcoder::scc_graph g2(n); for (int i=0;i>u>>v; u--;v--; g[u].push_back(v); g2.add_edge(u,v); } auto scc=g2.scc(); int k=scc.size(); vector group(n); for (int i=0;i col(n,-1); vector bip(k,true); auto dfs=[&](auto dfs,int v)-> void { if (col[v]==-1) col[v]=0; for (int u:g[v]){ if (group[v]!=group[u]) continue; if (col[u]==-1){ col[u]=col[v]^1; dfs(dfs,u); } if (col[u]!=col[v]^1) bip[group[v]]=false; } }; for (int i=0;i