Pyoseok 启程前往被诅咒的森林探险,以获取传闻中能赋予永生的女巫药水。
在被诅咒的森林中,有 $N$ 棵编号为 $1$ 到 $N$ 的树,树之间有双向的小路相连。Pyoseok 在树 $S$ 下开始他的冒险,并希望找到一条通往女巫小屋所在的树 $E$ 的路径。
传说被诅咒的森林中存在着一个遗忘记忆的诅咒,这使得冒险进入其中的人会漫无目的地游荡,甚至忘记自己是谁。当冒险者到达树 $i$ 下时,他们会完全忘记自己曾经访问过编号小于 $i$ 的树。
为了不迷失方向,Pyoseok 制定了一条规则:
“已经访问过的树绝不再次访问。”
由于诅咒的存在,他可能会忘记自己访问过某棵树并再次访问它,但只要他记得自己访问过某棵树,他就不会再次访问那棵树。
在他的记忆中,永恒转瞬即逝。站在女巫的小屋前,他发现了一个陌生的老人,并很快意识到那就是他自己。他曾经如此渴望的永生,如今在他衰老、腐朽的身体里不过是一个诅咒。他现在唯一想问的,就是有多少无数的岁月已经毫无意义地流逝,消失在虚无之中。
Pyoseok 目前正站在树 $E$ 下。在他访问过的树中,他所记得的树已被给出。请找出 Pyoseok 在此之前最多可能沿着小路旅行了多少次。请注意,Pyoseok 可能会多次访问树 $S$ 或树 $E$。(由于诅咒,他可能已经忘记了自己是从树 $S$ 开始的,或者他可能在没有注意到女巫小屋的情况下经过了树 $E$。)
输入格式
输入的第一行包含四个由空格隔开的整数 $N$、$M$、$S$ 和 $E$。
- $N$ 表示被诅咒森林中的树木数量,$M$ 表示小路的数量。($2 \le N \le 100\,000$;$1 \le M \le 300\,000$)
- $S$ 表示 Pyoseok 开始旅程的树,而 $E$ 表示女巫小屋所在的树。($1 \le S, E \le N$)
接下来的 $M$ 行输入,每行包含两个由空格隔开的整数 $a$ 和 $b$,表示由一条小路连接的两棵树。($1 \le a, b \le N$;$a \ne b$)
- 输入中不会重复给出同一条小路。
- 从任意一棵树出发,都可以通过一条或多条小路到达所有其他树。
输入的下一行包含 $K$,表示 Pyoseok 记得访问过的树木数量。($1 \le K \le N$)
下一行包含 $K$ 个由空格隔开的整数,表示 Pyoseok 记得访问过的树。这些数字按降序给出,且最后一个数字总是 $E$。
输出格式
输出 Pyoseok 在到达女巫小屋之前,最多可能沿着小路旅行的次数。旅行路径必须从树 $S$ 开始,在树 $E$ 结束,并且必须与 Pyoseok 的记忆相符。
如果答案大于或等于 $10^{18}$,则输出 eternity。
如果不存在符合给定条件的路径,则输出 impossible。
样例
输入样例 1
5 6 1 2 1 3 3 2 2 4 4 1 2 5 4 5 3 5 3 2
输出样例 1
10
输入样例 2
3 3 2 2 1 3 3 2 2 1 2 3 2
输出样例 2
4
输入样例 3
4 4 4 1 1 3 3 2 2 4 4 1 4 4 3 2 1
输出样例 3
impossible
输入样例 4
60 59 1 1 1 2 1 3 1 4 ... 1 58 1 59 1 60 60 60 59 58 ... 3 2 1
输出样例 4
eternity
说明
在第一个样例中,按 1, 3, 2, 4, 1, 3, 2, 5, 2, 3, 2 的顺序访问树木可以得到最大移动次数。
在第二个样例中,按 2, 1, 3, 1, 2 的顺序访问树木可以得到最大移动次数。
在第三个样例中,为了到达树 1,必须访问树 3 或树 4,因此不可能记得访问过树 2。
在第四个样例中,每条小路都将树 1 与树 2, 3, 4, . . . , 60 相连,且 Pyoseok 记得访问过所有的树。最大移动次数大于或等于 $10^{18}$,因此输出 "eternity"。