Kappa tiene un feliz árbol pequeño con raíz y $n$ nodos. El amigo de Kappa, Keepo, tiene un nodo favorito en este árbol. A Kappa no le importa dejar jugar a Keepo con su árbol, pero este tiene que seguir sus reglas: él permite a Keepo recorrer el árbol solamente en preorden (DFS - depth-first search). Además, los nodos están numerados de $0$ a $n - 1$, y cada nodo tiene un color blanco o negro. Esto también limita la forma de recorrer el árbol. A continuación se muestra el pseudocódigo usado:
$\verb|DFS(tree T):|$
$\verb| visit T’s root u|$
$\verb| if(u is white):|$
$\verb| for(all u’s child v, in ascending order by their index):|$
$\verb| DFS(subtree rooted at v)|$
$\verb| else:|$
$\verb| for(all u’s child v, in descending order by their index):|$
$\verb| DFS(subtree rooted at v)|$
La raíz está numerada con $0$, y cada nodo diferente a la raíz tiene un número mayor que su padre. A Keepo le gusta más el nodo $n - 1$, pero él no quisiera pasar mucho tiempo recorriendo el árbol. Por lo tanto, Keepo te pide que lo ayudes a determinar la cantidad de nodos que debe visitar antes de alcanzar su nodo favorito. Lo que hace las cosas más complicadas es que Kappa y Keepo cambian de idea frecuentemente. Algunas veces Kappa decide cambiar el color de todos los nodos en un subárbol, algunas veces Keepo cambia su nodo favorito. Luego de cada cambio, tú debes decirle a Keepo la nueva respuesta.