Коллекционировать животных можно не только на Ноевом ковчеге, но и на дереве. А дерево, как известно из теории графов, является связным ациклическим графом. Иными словами, дерево состоит из и вершин и n — 1 ребра между ними. Каждое ребро соединяет некоторые две вершины дерева. Из любой вершины дерева можно добраться по ребрам до любой другой. Также дерево не содержит циклов, т. е. нельзя построить путь по ребрам из некоторой вершины и вернуться в нее, не пройдя по одному и тому же ребру дважды.
Для расположения животных на нашем дереве сделано д гнезд, где 9 — четное число.
Животным каждого вида предназначены два гнезда.
После расселения по дереву каждая пара одного вида может перемещаться по ребрам дерева между своими гнездами. Они не должны мешать другим видам, т. е. чтобы никакие два пути не имели общего ребра. При этом допускается пересечение путей в вершине. Вам необходимо разместить , видов животных по гнездам таким образом, чтобы пути животных одного вида удовлетворяли этому условию.
Формат входных данных
В первой строке входных данных находится два целых числа п и q (2 ≤ n ≤ 2 • 105, 2 ≤ 9 ≤ п, д четно) - общее количество вершин в дереве и количество вершин, в которых расположены гнезда.
Во второй строке входных данных находятся д различных целых чисел т; (1 ≤ m; ≤ n) — номера вершин с гнездами.
В каждой из следующих п - 1 строк входных данных находится два целых и; и v; ( 1 ≤ Ui, Vi ≤ n, u; ‡ Vi). Это означает, что между вершинами и; и 0; в дереве проведено ребро.
Гарантируется, что ребра во входных данных образуют дерево.
Формат выходных данных
Выходные данные должны содержать & строк.
В каждой строке должно содержаться два целых числа х; и у (1 ≤ хі, Уі ≤ n) — номера вершин, в которых будут располагаться гнезда і-го вида животных.
Все числа в выходных данных должны быть различны и должны представлять собой номера вершин с гнёздами.
Если разместить животных требуемым образом невозможно, выведите число -1.
Критерии оценивания
Баллы начисляются за каждый тест в отдельности, но ряд тестов имеют специфическую структуру:
1. U; = i, V; = i + 1
2. u; = 1, 0; = i + 1
3. n ≤ 3000, g ≤ 6
4. q = n.
5. Нет дополнительных ограничений.
ввод:
9 6
1 3 2 5 8 6
3 1
3 2
3 4
3 5
3 6
4 7
7 8
1 9
вывод:
3 2
8 5
1 6
сделайте очень кратко на питон
Для расположения животных на нашем дереве сделано д гнезд, где 9 — четное число.
Животным каждого вида предназначены два гнезда.
После расселения по дереву каждая пара одного вида может перемещаться по ребрам дерева между своими гнездами. Они не должны мешать другим видам, т. е. чтобы никакие два пути не имели общего ребра. При этом допускается пересечение путей в вершине. Вам необходимо разместить , видов животных по гнездам таким образом, чтобы пути животных одного вида удовлетворяли этому условию.
Формат входных данных
В первой строке входных данных находится два целых числа п и q (2 ≤ n ≤ 2 • 105, 2 ≤ 9 ≤ п, д четно) - общее количество вершин в дереве и количество вершин, в которых расположены гнезда.
Во второй строке входных данных находятся д различных целых чисел т; (1 ≤ m; ≤ n) — номера вершин с гнездами.
В каждой из следующих п - 1 строк входных данных находится два целых и; и v; ( 1 ≤ Ui, Vi ≤ n, u; ‡ Vi). Это означает, что между вершинами и; и 0; в дереве проведено ребро.
Гарантируется, что ребра во входных данных образуют дерево.
Формат выходных данных
Выходные данные должны содержать & строк.
В каждой строке должно содержаться два целых числа х; и у (1 ≤ хі, Уі ≤ n) — номера вершин, в которых будут располагаться гнезда і-го вида животных.
Все числа в выходных данных должны быть различны и должны представлять собой номера вершин с гнёздами.
Если разместить животных требуемым образом невозможно, выведите число -1.
Критерии оценивания
Баллы начисляются за каждый тест в отдельности, но ряд тестов имеют специфическую структуру:
1. U; = i, V; = i + 1
2. u; = 1, 0; = i + 1
3. n ≤ 3000, g ≤ 6
4. q = n.
5. Нет дополнительных ограничений.
ввод:
9 6
1 3 2 5 8 6
3 1
3 2
3 4
3 5
3 6
4 7
7 8
1 9
вывод:
3 2
8 5
1 6
сделайте очень кратко на питон