#arc097b. [arc097_b]Equals

[arc097_b]Equals

题目描述

我们有一个由 11NN 的整数排列,p1p_1p2p_2,..,pNp_N。我们还有 MM 对介于 11NN 之间(包括 11NN)的两个整数,表示为 (x1,y1)(x_1,y_1)(x2,y2)(x_2,y_2),..,(xM,yM)(x_M,y_M)。AtCoDeer 将对 pp 执行以下操作,直到 ii 的数量最大化,其中 ii (11 ii NN) 使得 pi=ip_i = i

  • 选择 jj,其中 11 jj MM,并交换 pxjp_{x_j}pyjp_{y_j}

找出经过操作后满足 pi=ip_i = i 的最大可能 ii 的数量。

约束条件

  • 22 NN 10510^5
  • 11 MM 10510^5
  • pp 是由 11NN 的整数排列。
  • 11 xj,yjx_j,y_j NN
  • xjx_j yjy_j
  • 如果 ii jj,则 xi,yi\\{x_i,y_i\\} xj,yj\\{x_j,y_j\\}
  • 输入中的所有值均为整数。

输入

输入以以下格式从标准输入获得:

NN MM p1p_1 p2p_2 .... pNp_N x1x_1 y1y_1 x2x_2 y2y_2 :: xMx_M yMy_M

输出

打印经过操作后满足 pi=ip_i = i 的最大可能 ii 的数量。


示例输入 1

5 2
5 3 1 4 2
1 3
5 4

示例输出 1

2

如果我们选择 j=1j=1 执行操作,pp 变为 1 3 5 4 2,这是最优的,所以答案是 22


示例输入 2

3 2
3 2 1
1 2
2 3

示例输出 2

3

如果我们按顺序选择 j=1j=1j=2j=2j=1j=1 执行操作,pp 变为 1 2 3,这显然是最优的。请注意,我们可以任意多次选择相同的 jj


示例输入 3

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

示例输出 3

8

示例输入 4

5 1
1 2 3 4 5
1 5

示例输出 4

5

我们不必执行操作。