#include using namespace std; #define modulo 1000000007 #define mod(mod_x) ((((long long)mod_x+modulo))%modulo) #define Inf 1000000005 struct scc{ vector new_ind; vector> new_E; vector> E; vector> E_rev; int sz; scc(vector> &e){ E = e; E_rev.resize(e.size(),vector()); for(int i=0;i checked(E.size(),false); vector arrange; for(int i=0;i S; S.push(i); while(S.size()!=0){ int from = S.top(); S.pop(); if(from<0){ arrange.push_back(-from-1); continue; } if(checked[from])continue; checked[from]=true; S.push(-from-1); for(int j=0;j Q; Q.push(start); while(Q.size()!=0){ int from = Q.front(); Q.pop(); if(new_ind[from]!=-1)continue; new_ind[from]=sz; for(int j=0;j()); for(int i=0;i> ans,vector S,vector T,vector U){ for(int i=0;i>N; vector S(N),T(N),U(N); for(int i=0;i>S[i]; S[i]--; } for(int i=0;i>T[i]; T[i]--; } for(int i=0;i>U[i]; } vector> E(N*N*2,vector()); for(int i=0;i X(E.size(),0); for(int i=0;i Q; for(int i=0;i ind; while(Q.size()!=0){ int u = Q.front(); Q.pop(); ind.push_back(u); for(int i=0;i mp; for(int i=0;i> ans(N,vector(N,0)); for(int i=0;imp[v]){ ans[i][j]=0; } else{ ans[i][j]=1; } } } //cout<