Олимпиадный тренинг

Задача . D. Могучее Дерево


Геос и Сайтама пошли покупать новогодние ёлки, но их внимание привлекло необыкновенное Могучее Дерево. Могучее Дерево изначально состоит из единственной корневой вершины, имеющей номер 1. Могучее дерево иногда растёт благодаря волшебному феномену, известному как обновление. Во время обновления к дереву добавляется один новый лист. Каждой вершине дерева (корню и всем добавленным вершинам) присвоено некоторое значение vi. Мощность вершины определяется как сила мультимножества, составленного из значения данной вершины (то есть числа vi) и значений мощностей её непосредственных детей. Сила мультимножества определяется как сумма всех элементов в мультимножестве, умноженная на их количество, то есть для некоторого мультимножества S:

Сайтама знает, какие обновления произойдут с данным деревом, так что он решил проверить Геноса и задать ему вопросы о мощности разных вершин дерева во время его роста. Каждое обновление имеет вид p v, что означает добавление новой вершины со значением v, как непосредственного потомка вершины p. Каждый запрос имеет вид u, что означает, что Генос должен назвать мощность вершины u в текущий момент. Пожалуйста, помогите Геносу ответить на все вопросы Сайтама. Ответ выводите по модулю 109 + 7.
Входные данные

Первая строка входных данных содержит два числа v1 и q (1 ≤ v1 < 109, 1 ≤ q ≤ 200 000) — значение, ассоциированное с вершиной 1, и суммарное количество обновлений и запросов соответственно. В следующих q строках записаны обновления и запросы. Каждая строка имеет вид:

  • pi vi, если это обновление дерева. Добавляемая вершина получает в качестве номера минимальное положительное целое число, ещё не использующееся как номер какой-нибудь вершины. Гарантируется, что вершина с номером pi уже существует в дереве и что 1 ≤ vi < 109.
  • формы ui, если это вопрос Сайтама. Гарантируется, что вершина ui уже присутствует в дереве.
Гарантируется, что входные данные содержат хотя бы один запрос.
Выходные данные

Для каждого запроса выведите мощность указанной вершины в данный момент по модулю 109 + 7.

Примечание

В первом примере после всех обновлений дерево будет выглядеть следующим образом: 1 — 2 — 3 — 4 — 5

Вершинам будут присвоены следующие значения: 2 — 3 — 5 — 7 — 11

Мощности вершин будут, соответственно, равны: 344 — 170 — 82 — 36 — 11


Примеры
Входные данныеВыходные данные
1 2 5
1 1 3
1 2 5
1 3 7
1 4 11
2 1
344
2 5 5
1 1 4
1 2 3
2 2
1 2 7
2 1
14
94

time 3500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя