100 #ABC211D. [ABC211D] Number of Shortest paths

[ABC211D] Number of Shortest paths

配点 : 400400

問題文

AtCoder 国には 11 から NN の番号がついた NN 個の都市と、11 から MM の番号がついた MM 個の道路があります。

道路 ii を通ると都市 AiA_i と都市 BiB_i の間を双方向に 11 時間で移動することができます。

都市 11 から都市 NN へ最も早く移動することができる経路は何通りありますか? 答えは非常に大きくなる可能性があるので (109+7)(10^9+7) で割ったあまりを求めてください。

制約

  • 2N2×1052 \leq N \leq 2\times 10^5
  • 0M2×1050 \leq M \leq 2\times 10^5
  • 1Ai<BiN1 \leq A_i < B_i \leq N
  • (Ai,Bi)(A_i,B_i) は相異なる
  • 入力に含まれる値は全て整数である

入力

入力は以下の形式で標準入力から与えられる。

NN MM

A1A_1 B1B_1

\vdots

AMA_M BMB_M

出力

答えを出力せよ。 都市 11 から都市 NN へ移動することが出来ない場合は 00 と出力せよ。

4 5
2 4
1 2
2 3
1 3
3 4
2

都市 11 から都市 44 へは最短 22 時間で移動することができ、それを実現する経路は 1241 \to 2 \to 41341 \to 3 \to 422 つです。

4 3
1 3
2 3
2 4
1

都市 11 から都市 44 へは最短 33 時間で移動することができ、それを実現する経路は 13241 \to 3 \to 2 \to 411 つです。

2 0
0

都市 11 から都市 22 に移動することはできません。この場合 00 を出力してください。

7 8
1 3
1 4
2 3
2 4
2 5
2 6
5 7
6 7
4