k-ий пращур#9629

k-ий пращур

4 секунди
128 мегабайтів
Легка

Дерево з вершинами є зв'язним графом з p - 1 ребром. Позначимо як корінь дерева. Якщо вершина знаходиться на відстані від , а вершина на відстані l + 1 від , і з'єднано з , то називається пращуром (предком) (тобто батьківською вершиною).

Аналогічно, якщо знаходиться на відстані від і на відстані l + k від , і існує шлях довжиною від до , то називається -им пращуром .

Сьюзен любить грати з графами, і дерево є однією з її улюблених структур даних. Вона створила задачу і хоче дізнатися, чи зможе хтось її вирішити. Іноді вона додає або видаляє вершину, яка є листком. Ваше завдання — в будь-який момент знайти -го пращура вершини.

Вхідні дані

Перша стрічка містить кількість тестів (1 \le t \le 3). Далі йдуть тестів. Перша стрічка кожного тесту містить кількість вершин (1 \le p \le 10^5) у дереві. Кожна з наступних стрічок містить два цілі числа і , що означає, що є пращуром (предком) . Якщо дорівнює , то є коренем дерева ( не належить дереву). Відомо, що 1 \le x, y \le 10^5.

Наступна стрічка містить кількість запитів (1 \le q \le 10^5). Кожна з наступних стрічок містить запит:

- : додається як новий листок з пращуром . ще не в дереві, належить дереву. - : вершина-листок видаляється з дерева. є листком дерева. - : виведіть -го (1 \le k \le 10^5) пращура . — вершина в дереві.

Вихідні дані

Для кожного запиту типу виведіть -го пращура . Якщо -ий пращур не існує, виведіть . Якщо вказана вершина не існує, виведіть .

Приклади

Приклад 1

Loading
Loading