#include using namespace std; typedef long long ll; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b G[MAX]; bool ne[MAX]; bool kai[MAX]; void mk(int u){ for(int to:G[u]){ mk(to); kai[u]^=kai[to]; } ne[u]^=kai[u]; if(ne[u]){ kai[u]^=1; } } struct UF{ int n; vector par,size,edge; void init(int n_){ n=n_; par.assign(n,-1); size.assign(n,1); edge.assign(n,0); for(int i=0;i>N; for(int i=1;i>p;p--; G[p].push_back(i); } string S;cin>>S; for(int i=0;i>K; for(int i=0;i>a>>b;a--;b--; uf.unite(a,b); } for(int i=0;i