P0976

[Usaco2005 open]Around the world 环球飞行

[Usaco2005 open]Around the world 环球飞行

这些年,农夫约翰在世界各地结识了许多经营农场的朋友。他知道每位朋友的农场所在的经度。经度是一个 00 到 359359 之间的整数,用于描述农场在地球上的位置。

在本题中,将地球视为一个圆,经度沿圆的顺时针方向增大。农夫约翰共有 NN 位朋友,他们的农场编号为 11 到 NN。农场之间有 MM 条双向航线。

飞机总是沿地球表面的最短路径飞行,即沿圆上连接两个农场的较短弧飞行。任意一条航线连接的两个农场之间都有唯一的最短路径,因此两个经度恰好相差 180180 度的农场之间不会有航线。

每次飞行都可以描述为顺时针飞行或逆时针飞行。例如,从经度 3030 飞往经度 3535 是顺时针飞行,从经度 350350 飞往经度 1010 也是顺时针飞行,而从经度 350350 飞往经度 200200 则是逆时针飞行。

农夫约翰希望从他最好的朋友的农场出发,乘坐若干次航班访问一些朋友,最终回到出发点。他最好的朋友是输入中列出的第 11 个朋友。为了保证这次旅程确实环绕了地球,他要求旅途中顺时针飞行的总距离与逆时针飞行的总距离不相等。

请判断这样的环球旅行是否可行。如果可行,求所需的最少飞行次数。

输入格式

第一行包含两个用空格分隔的整数 NN 和 MM,分别表示农场数量和双向航线数量。

接下来 NN 行,第 ii 行包含一个整数,表示编号为 ii 的农场的经度。其中,第 11 个农场是农夫约翰最好的朋友的农场,也是旅程的起点和终点。

接下来 MM 行,每行包含两个整数,表示对应编号的两个农场之间存在一条双向航线。

输出格式

输出一个整数,表示完成环球旅行所需的最少飞行次数。每次从一个农场飞往另一个农场计为一次飞行。

如果无法完成这样的环球旅行,输出 −1-1。

样例输入

3 3
0
120
240
1 2
2 3
1 3

样例输出

3

数据范围

  • 1≤N≤50001\le N\le 5000;
  • 1≤M≤250001\le M\le 25000;
  • 每个农场的经度均为 00 到 359359 之间的整数;
  • 农场编号为 11 到 NN;
  • 每条航线连接的两个农场之间存在唯一的最短弧,互为对跖点的两个农场之间不存在航线。

来源与许可

本题为 USACO 2005 Open 试题「环球飞行」,题面与测试数据整理自 BZOJ。

样例 1

输入

3 3
0
120
240
1 2
2 3
1 3

输出

3