Ideal Frame | 프로그래밍의 벗 PivotOJ
PivotOJ

Ideal Frame

시간 제한: 2000ms메모리 제한: 64MB출처: NEERC Northern Subregional 2006BOJ 3623
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

Peter is fond of collecting various funny things. He can spend hours restoring and polishing some useless item he had found in a garbage heap.

Recently he has found a really nice thing. It is a small metal construction that consists of several iron rods soldered together with little tin beads. An example of such construction is shown on the picture below.

[이미지 1]

Peter has immediately understood that these nice rods are exactly what he needs for the frame around the photo of his girlfriend. The frame must have a form of a closed chain of rods. To do the transformation Peter would unsolder some beads, releasing the rods ends, and after that solder some free rod ends together again. When unsoldering a bead, Peter can separate the ends of the rods connected at that bead, in arbitrary way — that is, he can choose an arbitrary partition of rods connected to the bead into non-empty groups, so that once the bead is unsoldered only the rods belonging to the same group remain connected to each other.

For example, to turn the construction on the picture above to a frame, he could unsolder the bead A, separating the end of rod 1, unsolder the bead D, separating pairs or rods 4–5 and 3–7 (but keeping the rods in pairs connected), and unsolder the bead E, separating the end of the rod 7. After that he needs to solder the free ends of rods 1 and 7 to get the frame 1–7–3–2–4–5–6–8.

[이미지 2]

Now help Peter to find the way to create the frame from the construction he has got by making as few operations as possible. There are two types of operations: unsoldering a bead, and soldering two free ends of rods together. Unsoldering is counted as one operation no matter how many rods were connected in a bead and how they were rearranged.

입력

The first line of the input file contains two integer numbers n and m — the number of beads and the number of rods, respectively (0 ≤ n ≤ 1000, 2 ≤ m ≤ 50 000). Let the beads be numbered from 1 to n. The following m lines contain two integer numbers each — the numbers of the beads connected by the corresponding rod. If the end of the rod is not connected to any bead, 0 is used.

The construction may be not connected (i.e. it can consist of several pieces). There can be beads that have only one rod soldered into it. These beads need not be unsoldered before the corresponding end of the rod is soldered to another one.

There can also be beads that have no rods soldered into it. Since Peter is only interested in rods, these beads need not be soldered/unsoldered.

출력

Output one integer number — the number of operations Peter needs to create the frame from the construction described in the input file.

예제

예제 1

입력
6 8
1 2
1 3
3 4
1 4
4 6
5 6
4 5
1 5
출력
4

예제 2

입력
0 2
0 0
0 0
출력
2

예제 3

입력
3 3
0 1
0 0
2 2
출력
4
코드를 제출하려면 로그인하세요.