#icpc2013summerday3b. [icpc2013summer_day3_b]Minus One

[icpc2013summer_day3_b]Minus One

イクタ君は、無向グラフについて異常なほどの思い入れを持っている。イクタ君は、無向グラフ GG とその 2 点 s,ts,tの組(G,s,t)(G,s,t)のうち、その「うつくしさ」が大きいものが好きである。 組(G,s,t)(G,s,t)の「うつくしさ」とは、辺 e=u,ve = \\{u, v\\} (uuvvGG の異なる 2 点) で、GGにおけるssからttへの最短路の長さが、GGeeをつけくわえた無向グラフにおけるssからttへの最短路の長さより 1 だけ大きいものの個数である。

あなたの仕事は、組(G,s,t)(G,s,t)が与えられたとき、その「うつくしさ」を求めるプログラムを書くことである。

Input

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

NN MM ss tt
x1x1 y1y1
...
xixi yiyi
...
xMxM yMyM

最初に無向グラフの頂点数、辺数、2つの頂点を表す整数N,M,s,tN,M,s,tが入力される。 2行目からM+1M+1行目までは辺によって結ばれている2つの頂点が入力される。 (ただし、GG の頂点集合を1,...,N\\{1,..., N\\}とする。)

Constraints

入力中の各変数は以下の制約を満たす。

  • 2leqNleq100,0002\\leq N \\leq 100,000

  • 1leqMleq300,0001\\leq M \\leq 300,000

  • 1leqs,t,xi,yileqN1\\leq s,t,xi,yi \\leq N

  • sstt とは異なる

  • ss から tt に辿り着けることは保証されている

Output

与えられたグラフをGGとしたとき、組(G,s,t)(G,s,t)の「うつくしさ」を1行で出力せよ。

Sample Input 1

3 2 1 3
1 2
2 3

Output for the Sample Input 1

1
  • 頂点1から頂点3に辺を張ると、2点間の最短距離が 1 短くなる。

Sample Input 2

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

Output for the Sample Input 2

7

Sample Input 3

4 3 1 4
1 2
3 4
4 1

Output for the Sample Input 3

0
  • 頂点1と頂点4には既に辺が張られているので、これ以上距離を縮めることはできない。

Sample Input 4

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

Output for the Sample Input 4

2