EduBrick

N. Сколько кратчайших

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

Неориентированный граф задан списком рёбер. Посчитайте количество кратчайших путей из вершины 1 в вершину nn.

Путей может быть очень много, поэтому ответ выводится по модулю 109+710^9 + 7.

Считается это тем же обходом: у вершины на расстоянии dd число кратчайших путей равно сумме этих чисел по соседям на расстоянии d−1d - 1. Обход в ширину обрабатывает вершины по возрастанию расстояния, поэтому к моменту обработки все нужные значения уже готовы.

Формат ввода

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

Далее идут mm строк с рёбрами простого графа.

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

Одно число — количество кратчайших путей по модулю 109+710^9 + 7, или 0, если пути нет.

Примеры

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