Задачи
Дерево
Дерево
В упорядоченном корневом дереве у каждой нелистовой вершины определён порядок сыновей. Деревья считаются изоморфными, если при некотором взаимно-однозначном отображении вершин сохраняются:
\begin{itemize}
\item отношение "вершина \textbf{s} является сыном вершины \textbf{f}",
\item порядок сыновей у каждой вершины.
\end{itemize}
Дано упорядоченное корневое дерево \textbf{T} и список его модификаций. Модификации имеют вид: отрезать вершину с заданным номером вместе с поддеревом от её текущего отца и добавить в качестве самого правого сына к некоторой вершине.
Требуется определить, после какой модификации дерево впервые становится изоморфным какому-то из предыдущих деревьев.
\InputFile
В первой строке входного файла записано два целых числа: \textbf{N} --- количество вершин в дереве и \textbf{M} --- количество модификаций (\textbf{2} ≤ \textbf{N} ≤ \textbf{100000}, \textbf{1} ≤ \textbf{M} ≤ \textbf{100000}). Вершины дерева пронумерованы натуральными числами от \textbf{1} до \textbf{N}. Корень дерева имеет номер \textbf{1}.
В следующих \textbf{N} строках записаны упорядоченные списки сыновей для вершин исходного дерева. Каждый \textbf{i}-ый список описывается количеством \textbf{K_i} сыновей \textbf{i}-ой вершины и последовательностью номеров её вершин-сыновей (\textbf{0}≤ \textbf{K_i} ≤ \textbf{N--1}).
В оставшихся \textbf{M} строках описаны модификации дерева. Каждая модификация определяется двумя целыми числами \textbf{S_j} и \textbf{F_j} -- номером вершины, которую вместе с поддеревом отрезают от отца, и номером вершины, к которой её добавляют в качестве самого правого сына (\textbf{2} ≤ \textbf{S_j} ≤ \textbf{N}, \textbf{1} ≤ \textbf{F_j} ≤ \textbf{N}). Гарантируется, что вершина \textbf{F_j} не является потомком вершины \textbf{S_j} и не совпадает с ней.
\OutputFile
Если все \textbf{M+1} получающихся деревьев различны, в выходной файл необходимо вывести число \textbf{--1}. В противном случае нужно вывести через пробел два целых числа \textbf{A} и \textbf{B} --- номера двух изоморфных деревьев (\textbf{0} ≤ \textbf{A} < \textbf{B} ≤ \textbf{M}). Если пар изоморфных деревьев несколько, требуется вывести пару с минимальным номером \textbf{B}.
Деревья нумеруются следующим образом: исходное дерево имеет номер \textbf{0}. После \textbf{j}-ой модификации получается\textbf{j}-ое дерево (\textbf{1} ≤ \textbf{j} ≤ \textbf{M}).
\textbf{Комментарий}
Ниже приведены некоторые деревья для первого теста из условия.
\includegraphics{https://static.e-olymp.com/content/9f/9f17ae0b44aac616845d560e0152ed85cd88b030.jpg}
Входные данные #1
12 15 2 5 2 0 2 11 9 2 8 7 2 3 4 0 0 0 0 0 3 6 12 10 0 3 1 8 2 7 2 6 4 10 4 12 4 9 5 6 8 10 8 12 8 8 5 9 2 4 5 6 9 6 8
Выходные данные #1
7 13