Məsələlər
"Penguin"
"Penguin"
После общения с питоном Ван-Россума, Ковальски решил изобрести свой собственный язык программирования и назвать его "Penguin". Особенностью этого языка будет то, что он возьмет все самое лучшее от остальных языков программирования, что, несомненно, сделает его самым используемым во всём мире.
Помимо прочего, в этом языке будет препроцессор, очень похожий на препроцессор языка Си. Препроцессор обрабатывает исходный код программы построчно сверху вниз. Если текущая строка имеет вид "\textbf{import }", то он подставляет вместо этой строчки исходный код файла \textbf{some_file_name.pen} и продолжает обработку файла (обрабатывая в том числе и только что вставленные строки).
Рассмотрим работу препроцессора на примере. Пусть есть два файла --- \textbf{a.pen} и \textbf{b.pen}.
Исходный код \textbf{a.pen}:
\textbf{import < b.pen > sayHello("world");}
Исходный код \textbf{b.pen}:
\textbf{void sayHello(string name): print("Hello, " + name);}
После работы препроцессора файлы будут выглядеть следующий образом.
\textbf{a.pen}:
\textbf{void sayHello(string name): print("Hello, " + name); sayHello("world");}
\textbf{b.pen}:
\textbf{void sayHello(string name): print("Hello, " + name);}
Заметьте, что препроцессор работает рекурсивно: он продолжает обрабатывать директивы вставки до тех пор, пока они не будут все обработаны. Несложно видеть, что это может привести к бесконечному процессу подключения файлов. В таком случае размер результирующего файла полагается равным бесконечности.
Однако после работы препроцессора исходный код программы может сильно увеличиться. У Ковальски есть \textbf{n} файлов на языке "Penguin", некоторые из них подключают другие файлы. Его интересует размер файлов после выполнения препроцессора. Так как Ковальски вызывают на новое задание, он просит Вас помочь ему.
\InputFile
В первой строке входного файла находится число \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{10000}) --- количество файлов. Следующие \textbf{n} блоков содержат по три строки. В первой строке \textbf{i}--ого блока находится число \textbf{k_i} (\textbf{0} ≤ \textbf{k_i} ≤ \textbf{30000}) --- количество файлов, подключаемых в программе \textbf{i}. Во второй строке \textbf{i}--ого блока находятся \textbf{k_i} чисел --- номера файлов, подключаемых в файле с номером \textbf{i}. Все индексы --- целые числа от одного до \textbf{n}. В третьей строке \textbf{i}--ого блока находится число \textbf{s_i} (\textbf{1} ≤ \textbf{s_i} ≤ \textbf{10^9}) --- количество строк в \textbf{i}--ом файле, без учёта строк подключения других файлов.
Гарантируется, что суммарное количество подключаемых файлов не превосходит \textbf{30000}.
В последней строке входного файла содержится число \textbf{p} --- количество файлов, размеры которых после работы препроцессора, хочет знать Ковальски. Далее в этой же строке содержится \textbf{p} чисел --- номера этих файлов.
\OutputFile
В выходной файл выведите \textbf{p} строк --- для каждого из интересующих Ковальски файлов количество строк в нём после работы препроцессора. Если это количество будет бесконечно большим, то выведите \textbf{-1}. Гарантируется, что размер выходного файла не превосходит одного мегабайта.
Giriş verilənləri #1
2 1 2 1 0 2 2 1 2
Çıxış verilənləri #1
3 2