Дерево#2021

Дерево

2 секунди
256 мегабайтів
Дуже легка

Задано дерево. Для кожної вершини дерева задано набір предметів, які можна розмістити у цій вершині. Кожен елемент має вагу — додатнє ціле число. Для кожного ребра дерева визначено співвідношення між вершинами; а саме, відомо, в якій із двох вершин має бути елемент з меншою вагою. Потрібно визначити кількість різних способів вибрати по одному елементу для кожної вершини дерева так, щоб виконувалися всі співвідношення на ребрах. Різні елементи з набору однієї вершини можуть мати однакову вагу.

Вхідні дані

Перший рядок містить число вершин (1 \le n \le 1000) у дереві.

Далі йдуть рядків, у яких -ий рядок містить список допустимих елементів у вершині . Рядок починається з цілого числа (1 \le k \le 1000) — кількості елементів. Далі йдуть цілих чисел w_j (1 \le w_j \le 10^9) — ваги елементів.

Потім у вхідних даних слідують n - 1 рядків. Кожен рядок містить два різних цілих числа , (1 \le a, b \le n), що означає, що існує ребро між вершинами і , і у вершині має бути елемент з меншою вагою, ніж у вершині .

Вихідні дані

Виведіть кількість способів за модулем .

Приклади

Приклад 1

Loading
Loading