atcoder#ARC126B. [ARC126B] Cross-free Matching

[ARC126B] Cross-free Matching

Score : 400400 points

Problem Statement

In the coordinate plane, we have 2N2N vertices whose xx-coordinates are 1,2,,N1, 2, \ldots, N and whose yy-coordinates are 00 or 11: (1,0),,(N,0),(1,1),,(N,1)(1, 0),\ldots, (N,0), (1,1), \ldots, (N,1). There are MM segments that connect two of these vertices: the ii-th segment connects (ai,0)(a_i, 0) and (bi,1)(b_i, 1).

Consider choosing KK of these MM segments so that no two chosen segments contain the same point. Here, we consider both endpoints of a segment to be contained in that segment. Find the maximum possible value of KK.

Constraints

  • 1N,M2×1051\leq N, M \leq 2\times 10^5
  • 1ai,biN1\leq a_i, b_i\leq N
  • aiaja_i\neq a_j or bibjb_i\neq b_j, if iji\neq j.

Input

Input is given from Standard Input in the following format:

NN MM

a1a_1 b1b_1

\vdots

aMa_M bMb_M

Output

Print the maximum possible value of KK.

3 3
1 2
2 3
3 1
2

One optimal solution is to choose the first and second segments.

The first and third segments, for example, contain the same point (53,23)\left(\frac53, \frac23\right), so we cannot choose them both.

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

One optimal solution is to choose the first, third, and fifth segments.

The first and second segments, for example, contain the same point (1,1)(1, 1), so we cannot choose them both.

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