#agc006f. [agc006_f]Blackout

[agc006_f]Blackout

题目描述

我们有一个NNNN列的矩阵。第ii行第jj列的格子表示为(i,j)(i,j)

开始时,有MM个格子是黑色,其他格子都是白色。特别地,开始时格子(a1,b1)(a_{1},b_{1}),(a2,b2)(a_{2},b_{2}),...,(aM,bM)(a_{M},b_{M})是黑色。

スヌケ君会按照以下的规则尽可能多的将白色格子涂成黑色:

  • 对于整数1x,y,zN1\le x,y,z\le N,如果(x,y)(x,y)(y,z)(y,z)都是黑色,那么就把(z,x)(z,x)涂黑。

请计算出当再也没有白色格子能被涂黑时,黑色格子的个数。

说明

  • 1N1051\le N \le 10^{5}
  • 1M1051\le M \le 10^{5}
  • 1ai,biN1\le a_{i},b_{i} \le N
  • 各黑格坐标互不相同

输入输出格式

输入格式

从标准输入输入,格式见下:

第一行包含两个整数NNMM

从第二行开始的MM行,每行有两个以空格隔开的整数aia_{i}bib_{i},表示第ii个黑色格子的坐标。

输出格式

输出一个整数到标准输出,表示当スヌケ君尽可能多的把格子涂黑之后,黑色格子的个数。

样例解释

样例1解释

可以按这样的方法涂黑一个格子:

  • 因为格子(1,2)(1,2)(2,3)(2,3)都是黑色而(3,1)(3,1)是白色,把(3,1)(3,1)涂黑。

样例2解释

可以按这样的方法涂黑两个格子:

  • 因为格子(1,1)(1,1)(1,2)(1,2)都是黑色而(2,1)(2,1)是白色,把(2,1)(2,1)涂黑。

  • 因为格子(2,1)(2,1)(1,2)(1,2)都是黑色而(2,2)(2,2)是白色,把(2,2)(2,2)涂黑。

样例3解释

很遗憾,没有任何白色格子能被涂黑。

样例4~6分别与样例1~3相同