#arc126b. [arc126_b]Cross-free Matching

[arc126_b]Cross-free Matching

問題文

座標平面上に、xx 座標が 1,2,ldots,N1, 2, \\ldots, Nyy 座標が 00 または 11 であるような合計 2N2N 個の頂点 (1,0),ldots,(N,0),(1,1),ldots,(N,1)(1, 0),\\ldots, (N,0), (1,1), \\ldots, (N,1) があります。 これらのうちの 22 頂点を結ぶ線分が MM 個あり、ii 番目の線分は (ai,0)(a_i, 0)(bi,1)(b_i, 1) を結んでいます。

これら MM 個の線分から KK 個の線分を選び、選んだ線分のうちどの 22 個の線分も同一の点を含まないようにすることを考えます。ただし、線分の両端点も線分に含まれる点として扱います。可能な KK の最大値を求めてください。

制約

  • 1leqN,Mleq2times1051\\leq N, M \\leq 2\\times 10^5
  • 1leqai,bileqN1\\leq a_i, b_i\\leq N
  • ineqji\\neq j ならば、aineqaja_i\\neq a_j または bineqbjb_i\\neq b_j

入力

入力は以下の形式で標準入力から与えられます。

NN MM a1a_1 b1b_1 vdots\\vdots aMa_M bMb_M

出力

可能な KK の最大値を出力してください。


入力例 1

3 3
1 2
2 3
3 1

出力例 1

2

1,21, 2 番目の線分を選ぶことが、最適解のひとつです。

例えば 11 番目の線分と 33 番目の線分は同一の点 left(frac53,frac23right)\\left(\\frac53, \\frac23\\right) を含むため、同時に選ぶことはできません。


入力例 2

3 5
1 1
2 1
2 2
3 2
3 3

出力例 2

3

1,3,51, 3, 5 番目の線分を選ぶことが、最適解のひとつです。

例えば 11 番目の線分と 22 番目の線分は同一の点 (1,1)(1, 1) を含むため、同時に選ぶことはできません。


入力例 3

7 5
1 7
7 1
3 4
2 6
5 2

出力例 3

1