#abc132e. [abc132_e]Hopscotch Addict

[abc132_e]Hopscotch Addict

题目描述

Ken 热爱 ken-ken-pa(日本版的跳房子游戏)。今天,他将在一个有向图 GG 上玩。GGNN 个编号为 11NN 的顶点和 MM 条边组成。第 ii 条边从顶点 uiu_i 指向顶点 viv_i

首先,Ken 站在顶点 SS 上。他想通过重复 ken-ken-pa 抵达顶点 TT。在一次 ken-ken-pa 中,他会依次经过三条出发自他所站立的顶点的边。

判断他是否可以通过重复 ken-ken-pa 抵达顶点 TT。如果答案是肯定的,则找到抵达顶点 TT 所需的最少 ken-ken-pa 数量。注意,在 ken-ken-pa 过程中途经顶点 TT 不计入重复 ken-ken-pa 抵达顶点 TT 的次数。

约束条件

  • 2N1052 \leq N \leq 10^5
  • 0Mmin(105,N(N1))0 \leq M \leq \min(10^5, N (N-1))
  • 1ui,viN(1iM)1 \leq u_i, v_i \leq N(1 \leq i \leq M)
  • uivi(1iM)u_i \neq v_i (1 \leq i \leq M)
  • 如果 iji \neq j,则 (ui,vi)(uj,vj)(u_i, v_i) \neq (u_j, v_j)
  • 1S,TN1 \leq S, T \leq N
  • STS \neq T

输入

从标准输入读入输入数据,数据格式如下:

NN MM u1u_1 v1v_1 :: uMu_M vMv_M SS TT

输出

如果 Ken 无法通过重复 ken-ken-pa 从顶点 SS 抵达顶点 TT,则输出 1-1。如果可以,则输出抵达顶点 TT 所需的最少 ken-ken-pa 数量。

示例输入 1

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

示例输出 1

2

Ken 可以通过两次 ken-ken-pa 从顶点 11 抵达顶点 33,如下所示:第一次 ken-ken-pa:12341 \rightarrow 2 \rightarrow 3 \rightarrow 4,第二次 ken-ken-pa:41234 \rightarrow 1 \rightarrow 2 \rightarrow 3。这是所需的最少 ken-ken-pa 数量。

示例输入 2

3 3
1 2
2 3
3 1
1 2

示例输出 2

-1

无论进行多少次 ken-ken-pa,Ken 都会回到顶点 11,所以他无法抵达顶点 22,即使他可以在 ken-ken-pa 过程中经过顶点 22

示例输入 3

2 0
1 2

示例输出 3

-1

顶点 SS 和顶点 TT 可能是不连通的。

示例输入 4

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

示例输出 4

2