static int Lca(int u, int v) { if (u == v) { return(u); } if (order[u][0] > order[v][0]) { var t = u; u = v; v = t; } if (order[u].Last() > order[v][0]) { return(u); } return(tour[minDepth.FirstArgMin(order[u].Last(), order[v][0])]); }