#agc006f. [agc006_f]Blackout

[agc006_f]Blackout

题目描述

我们有一个 NNNN 列的网格。网格中第 ii 行第 jj 列的单元格表示为 (ii, jj)。

初始时,有 MM 个单元格被涂黑,其余单元格都是白色。具体地,涂黑的单元格为 (a1a_1, b1b_1), (a2a_2, b2b_2), ......, (aMa_M, bMb_M)。

Snuke 尝试将尽可能多的白色单元格涂黑,遵循以下规则:

  • 如果两个单元格 (xx, yy) 和 (yy, zz) 都是黑色,并且单元格 (zz, xx) 是白色,其中 1x,y,zN1≤x,y,z≤N,则涂黑单元格 (zz, xx)。

计算当无法再涂黑更多白色单元格时,涂黑的单元格数量。

约束条件

  • 1N1051≤N≤10^5
  • 1M1051≤M≤10^5
  • 1ai,biN1≤a_i,b_i≤N
  • 所有对 (aia_i, bib_i) 都是不同的。

输入

从标准输入中以以下格式给出输入:

NN MM a1a_1 b1b_1 a2a_2 b2b_2 :: aMa_M bMb_M

输出

输出当无法再涂黑更多白色单元格时,涂黑的单元格数量。


样例输入 1

3 2
1 2
2 3

样例输出 1

3

可以将一个白色单元格涂黑,操作如下:

  • 由于单元格 (11, 22) 和 (22, 33) 都是黑色,并且单元格 (33, 11) 是白色,将单元格 (33, 11) 涂黑。

样例输入 2

2 2
1 1
1 2

样例输出 2

4

可以将两个白色单元格涂黑,操作如下:

  • 由于单元格 (11, 11) 和 (11, 22) 都是黑色,并且单元格 (22, 11) 是白色,将单元格 (22, 11) 涂黑。
  • 由于单元格 (22, 11) 和 (11, 22) 都是黑色,并且单元格 (22, 22) 是白色,将单元格 (22, 22) 涂黑。

样例输入 3

4 3
1 2
1 3
4 4

样例输出 3

3

无法再涂黑更多的白色单元格。