#include using namespace std; using ll=long long; #include using namespace atcoder; using mint = modint998244353; vector fact, factinv, inv; const ll mod = 998244353; void prenCkModp(ll n) { fact.resize(n + 5); factinv.resize(n + 5); inv.resize(n + 5); fact[0] = fact[1] = 1; factinv[0] = factinv[1] = 1; inv[1] = 1; for (ll i = 2; i < n + 5; i++) { fact[i] = (fact[i - 1] * i); inv[i] = mod - (inv[mod % i] * (mod / i)); factinv[i] = (factinv[i - 1] * inv[i]); } } mint nCk(ll n, ll k) { if (n < k||k<0) return 0; return fact[n] * (factinv[k] * factinv[n - k]); } void solve(){ ll X,Y,M; cin>>X>>Y>>M; vector> G(X); for(int i=0;i>u>>v; u--;v--; G[u].push_back(v); } for(int x=0;x GG; for(auto y:G[x]){ if(GG.size()==0||GG.back()!=y)GG.push_back(y); } swap(G[x],GG); } while(1){ vector U(Y,0); int YN=0; vector YY,XX; for(int i=0;i>T; while(T--)solve(); }