Ориентированным взвешенным лесом называется взвешенный ациклический орграф, в котором из каждой вершины выходит не более одного ребра.
Корнем вершины v ориентированного взвешенного леса назовем вершину, из которой не выходит ребра, и до которой можно дойти из вершины v, двигаясь по ребрам ориентированного взвешенного леса. Обозначим корень вершины v как root(v).
Глубиной вершины v назовем сумму весов пути проходящего от вершины v до ее корня. Обозначим глубину вершины v как depth(v).
Рассмотрим процесс построения ориентированного взвешенного леса. Изначально лес не содержит вершин. Вершины последовательно добавляются по одной. Всего выполняется n операций добавления. i-я (i > 0) операция добавления описывается набором чисел (k, v1, x1, v2, x2, ... , vk, xk) и означает, что в граф нужно добавить вершину номер i и k ребер: ребро из вершины root(v1) в вершину i весом depth(v1) + x1, ребро из вершины root(v2) в вершину i весом depth(v2) + x2 и так далее. В случае, если k = 0, в граф добавляется только вершина i и не добавляется никаких ребер.
Ваша задача состоит в том, чтобы по заданным операциям добавления вершин вычислить остаток от деления суммы весов всех ребер леса, получившихся после применения всех заданных операций, на 1000000007 (109 + 7).