#include #include #include #include using namespace std; int n, m; int a[200020], b[200020], k[200020]; int c[200020], d[400040]; int a1[200020], b1[200020]; vector g[400040]; bool root[400040]; int l[400040], r[400040], rev[400040]; int pr[400040]; int s[400040], t[200020]; int main() { scanf("%d %d", &n, &m); for(int i=0; ivoid{ l[x]=cnt++; rev[l[x]]=x; for(int i=(int)g[x].size()-1; i>=0; i--) dfs(dfs, g[x][i]); r[x]=cnt; }; for(int i=0; is[i-1]) t[s[i]]=i; auto myon=[&](int k, int l, int r){ return d[rev[t[s[l]+k]-1]]; }; for(int i=0; i