#abc211d. [abc211_d]Number of Shortest paths

[abc211_d]Number of Shortest paths

問題文

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

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

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

制約

  • 2leqNleq2times1052 \\leq N \\leq 2\\times 10^5
  • 0leqMleq2times1050 \\leq M \\leq 2\\times 10^5
  • 1leqAi<BileqN1 \\leq A_i < B_i \\leq N
  • (Ai,Bi)(A_i,B_i) は相異なる
  • 入力に含まれる値は全て整数である

入力

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

NN MM A1A_1 B1B_1 vdots\\vdots AMA_M BMB_M

出力

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


入力例 1

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

出力例 1

2

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


入力例 2

4 3
1 3
2 3
2 4

出力例 2

1

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


入力例 3

2 0

出力例 3

0

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


入力例 4

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

出力例 4

4