EduBrick

C. Где сортировка сломалась

2000 мс · 256 МБ · всё или ничего

Как классная задача C, но полезнее: если перестановка не является топологической сортировкой, укажите номер первого по вводу ребра, которое ей противоречит.

Считать по-прежнему нужно только позиции вершин в перестановке, а потом просмотреть рёбра по порядку и остановиться на первом, у которого начало стоит не раньше конца.

Обратите внимание на петлю: ребро u→uu \to u противоречит любой перестановке, потому что вершина не может стоять раньше самой себя.

Формат ввода

Первая строка содержит числа nn и mm (1≤n,m≤1051 \le n, m \le 10^5).

Далее идут mm строк с рёбрами. В последней строке — перестановка из nn чисел.

Формат вывода

Число 00, если перестановка — топологическая сортировка, иначе номер первого нарушенного ребра.

Примеры

ввод
3 3
2 3
1 3
1 2
2 1 3
вывод
3
ввод
3 3
3 2
1 2
3 1
3 1 2
вывод
0
Войдите, чтобы отправлять решения.