Вам дано дерево из $$$n$$$ вершин, пронумерованных от $$$1$$$ до $$$n$$$. Слизень занимает ровно $$$m$$$ вершин дерева. Гарантируется, что подграф, порождённый занятыми вершинами, является связным.
Изначально слизень занимает вершины $$$s_1,s_2,\ldots,s_m$$$.
Сначала определим функцию $$$f$$$ на последовательности вершин. Рассмотрим последовательность $$$a_1,a_2,\ldots,a_k$$$. Имеется $$$k$$$ кусочков еды. Для каждого $$$i$$$ $$$i$$$-й кусочек еды находится в вершине $$$a_i$$$. Изначально на дереве находится только первый кусочек еды.
Слизень может выполнять следующие операции любое количество раз:
Формально, пусть $$$S$$$ — текущее множество занятых вершин. Выбрать вершину $$$u\in S$$$ и вершину $$$v\notin S$$$ и заменить $$$S$$$ на $$$(S\setminus{u})\cup{v}$$$. После операции подграф, порождённый $$$S$$$, должен оставаться связным.
Определим $$$f([a_1,a_2,\ldots,a_k])$$$ как минимальное количество операций Передвижение, необходимых слизню для того, чтобы съесть все $$$k$$$ кусочков еды по порядку, начиная с изначально занятых вершин $$$s_1,s_2,\ldots,s_m$$$.
Имеется $$$q$$$ запросов. Вам нужно отвечать на запросы в режиме онлайн: На вход подаются закодированные значения $$$p_1,p_2,\ldots,p_q$$$. Пусть $$$\mathrm{ans}_0=0$$$. Для каждого $$$i=1,2,\ldots,q$$$ фактическая вершина $$$i$$$-го запроса равна $$$c_i=((p_i-1+\mathrm{ans}_{i-1}) \bmod n)+1$$$, где $$$\mathrm{ans}_i=f([c_1,c_2,\ldots,c_i])$$$.
Для каждого $$$i=1,2,\ldots,q$$$ выведите $$$\mathrm{ans}_i$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит три целых числа $$$n$$$, $$$m$$$ и $$$q$$$ ($$$2\le m\le n\le 10^5$$$, $$$1\le q\le 10^5$$$) — количество вершин в дереве, количество вершин, занятых слизнем, и количество запросов.
Каждая из следующих $$$n-1$$$ строк содержит два целых числа $$$u$$$ и $$$v$$$ ($$$1\le u,v\le n$$$, $$$u\ne v$$$), обозначающих ребро дерева.
Следующая строка содержит $$$m$$$ различных целых чисел $$$s_1,s_2,\ldots,s_m$$$ ($$$1\le s_i\le n$$$) — вершины, изначально занятые слизнем. Гарантируется, что эти вершины порождают связный подграф.
Следующая строка содержит $$$q$$$ целых чисел $$$p_1,p_2,\ldots,p_q$$$ ($$$1\le p_i\le n$$$) — закодированные вершины запросов.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$10^5$$$.
Гарантируется, что сумма значений $$$q$$$ по всем наборам входных данных не превосходит $$$10^5$$$.
Для каждого набора входных данных выведите $$$q$$$ целых чисел. $$$i$$$-е целое число должно быть равно $$$\mathrm{ans}_i$$$.
105 2 33 52 14 33 21 21 4 36 3 45 11 36 14 12 11 2 35 2 5 67 3 53 74 21 32 16 35 21 2 47 3 2 5 25 2 53 11 52 14 11 23 3 3 4 26 3 64 63 21 25 42 42 4 56 6 1 2 4 67 4 55 23 12 13 76 34 21 2 3 47 4 4 5 14 3 43 11 42 11 2 34 1 2 36 2 52 45 42 16 43 21 26 1 1 1 27 2 52 47 33 61 31 25 21 24 6 1 6 58 4 65 23 27 54 38 71 26 52 3 4 58 7 3 3 7 8
0 2 31 1 2 32 4 6 8 91 2 3 4 41 2 3 4 4 41 2 3 3 41 1 2 22 4 6 8 91 4 7 10 112 3 4 4 5 5
В пояснениях ниже подчёркнутая вершина — это вновь занятая вершина после операции Передвижение, а вершины, в которых слизень поедает еду, выделены жирным шрифтом.
В первом наборе входных данных после декодирования еда появляется в вершинах $$$1,4,5$$$ по порядку. Изначально слизень занимает $$$[1,2]$$$.
Во втором наборе входных данных после декодирования еда появляется в вершинах $$$5,3,6,2$$$ по порядку. Изначально слизень занимает $$$[1,2,3]$$$.
В третьем наборе входных данных после декодирования еда появляется в вершинах $$$7,5,6,4,3$$$ по порядку. Изначально слизень занимает $$$[1,2,4]$$$.
В четвёртом наборе входных данных после декодирования еда появляется в вершинах $$$3,4,5,2,1$$$.
В пятом наборе входных данных после декодирования еда появляется в вершинах $$$6,1,3,5,2,4$$$.
В шестом наборе входных данных после декодирования еда появляется в вершинах $$$7,5,6,1,4$$$.