int ask(int u, int v) { if (dfn[u] > dfn[v]) swap(u, v); if (u == v) return u; for (register int i = t; i >= 0; i -- ) if (dfn[fa[v][i]] > dfn[u]) v = fa[v][i]; return fa[v][0]; }