В компании работают n бурундуков (n≥2), пронумерованных целыми числами от 1 до n. Бурундук с номером 1 является основателем компании, а каждый из остальных бурундуков имеет ровно одного непосредственного начальника. Иными словами, иерархия бурундуков представляет собой корневое дерево, где родитель вершины является её начальником, а дети вершины являются её подчинёнными. Бурундуки, имеющие подчинённых, называются менеджерами, а остальные --- консультантами. Структура компании такова, что каждый менеджер имеет не более 8 подчинённых. Обратите внимание, что основатель компании также является менеджером.
Основатель компании решил составить доклад для инвесторов о последних проделанных улучшениях разрабатываемого продукта. Каждое улучшение является результатом работы кого-то из консультантов компании. Все улучшения пронумерованы в хронологическим порядке их совершения.
Для каждого из консультантов известен список улучшений, сделанных этим консультантом. Каждый консультант обязан выбрать одно из этих улучшений и сделать о нём доклад своему менеджеру. Таким образом, доклад любого консультанта будет состоять ровно из одного улучшения.
Каждый менеджер, в том числе основатель компании, должен сделать доклад, представляющий собой объединение докладов всех его подчиненных. Для этого он берёт доклады, полученные от подчинённых, и записывает их подряд без изменений в некотором порядке. Например, если первый доклад состоит из улучшений \[1,3], а второй --- из улучшений \[2,4,10], то в результате объединения может получиться доклад \[2,4,10,1,3], либо доклад \[1,3,2,4,10], никакие другие доклады получиться не могут.
Основатель компании стремится рассказать об улучшениях максимально логично, поэтому он хочет, чтобы в его докладе улучшения шли в хронологическом порядке, то есть по возрастанию номеров. Помогите консультантам выбрать, о каком улучшении они должны рассказать, а менеджерам выбрать, в каком порядке им располагать доклады подчиненных при объединении, чтобы в итоговом докладе основателя компании вошедшие в него улучшения шли в хронологическом порядке.
В первой строке содержится целое число n (2≤n≤100,000) --- количество бурундуков в компании. Далее следуют n описаний бурундуков, по одному в строке:
Бурундук с номером 1 (основатель компании) всегда является менеджером, а каждый из остальных бурундуков упомянут в качестве подчинённого ровно один раз и прямо или косвенно подчинен основателю компании.
Сумма чисел m_i по всем консультантам не превосходит 100,000. Гарантируется, что никакое улучшение не было сделано двумя различными консультантами, то есть все упомянутые всеми консультантами улучшения различны.
Если составить доклад требуемым образом невозможно, выведите <<No>>.
Если доклад составить возможно, выведите <<Yes>>. В этом случае затем вы можете вывести сертификат, который описывает для каждого из бурундуков в порядке их номеров следующее:
Особенность этой задачи заключается в следующем: вам разрешается как выводить сертификат, так и не выводить его. Если решение не выводит сертификат, но правильно определяет возможность составления доклада, оно получит часть баллов за тест.
Обратите внимание, что вывод некорректного сертификата приводит к вердикту <<Неправильный ответ>> и нулю баллов за этот тест, несмотря на правильность определения возможности составления доклада.
Во втором примере не сделан вывод сертификата, что соответствует частичному решению.
В третьем примере каждый из консультантов сделал ровно одно улучшение, поэтому выбор улучшений однозначен.
У третьего менеджера есть два возможных варианта доклада: \[1,3] или \[3,1].
У первого менеджера есть четыре возможных варианта доклада с учетом всех возможностей доклада третьего менеджера: \[1,3] + \[2] = \[1,3,2], \[2] + \[1,3] = \[2,1,3], \[3,1] + \[2] = \[3,1,2] и \[2] + \[3,1] = \[2,3,1], но ни в одном из этих докладов улучшения не идут в хронологическом порядке.