Деталі#4851

Деталі

1 секунда
128 мегабайтів
Легка

Підприємство Авто-2012 випускає двигуни для відомих у світі автомобілів. Двигун складається рівно з деталей, пронумерованих від до , причому деталь з номером виготовляється за p_i секунд. Особливістю підприємства Авто-2012 є те, що одночасно може виготовлятися лише одна деталь двигуна. Для виробництва деяких деталей необхідно мати попередньо виготовлений набір інших деталей.

Генеральний директор Авто-2012 поставив перед підприємством амбітне завдання: виготовити деталь з номером у найкоротший термін, щоб представити її на виставці.

Напишіть програму, яка за заданими залежностями порядку виробництва між деталями знаходить найменший час, за який можна виготовити деталь з номером .

Вхідні дані

Перший рядок містить (1 \le n \le 10^5) натуральних чисел p_1, p_2, \ldots, p_n, які визначають час виготовлення кожної деталі у секундах.

Кожен з наступних рядків описує характеристики виробничого процесу для кожної деталі. -ий рядок містить список деталей, які потрібні для виробництва деталі з номером . У списку немає повторюваних номерів деталей. Список також може бути порожнім — тоді це буде порожній рядок. Сума довжин всіх списків не перевищує .

Відомо, що у виробництві деталей не існує циклічних залежностей.

Вихідні дані

Виведіть мінімальний час (у секундах), необхідний для найшвидшого виробництва деталі з номером .

Приклади

Input

Output

4 8 8 7<br>2 3<br>4<br><br>

19

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Примітка

Для прикладу оптимальний шлях:

  • Виготовити деталі , та одну за одною.

  • Потім виготовити деталь .

Загальний час 7 + 8 + 8 + 4 = 27, але оскільки деталі і можуть бути виготовлені паралельно після виготовлення деталі , необхідно враховувати найтриваліший ланцюжок — 7 + 8 + 4 = 19.