연합
Press the right button to connect the device.
Quiz Info
연합
Easy
Category
Programming
Points
100p
Participant
455
Solved Rate
95.1%
18
7

문제


바다 위에 개의 섬이 있다. 섬은 번부터 번까지 차례대로 번호가 붙어 있다. 서로 다른 두 섬 사이를 연결하는 개의 다리도 있다. 모든 다리는 단방향으로만 이동 가능하고, 어떤 두 섬 사이를 잇는 다리는 정방향 하나, 역방향 하나씩 해서 최대 두 개이다.

어느 날, 섬들 사이에 분쟁이 일어났다. 모든 섬들은 세력을 키우기 위해 다른 섬과 연합을 결성하려고 한다. 임의의 두 섬 와 에 대해, 번 섬에서 번 섬으로 직접 이동할 수 있는 다리와 번 섬에서 번 섬으로 직접 이동할 수 있는 다리가 있으면, 두 섬은 연합을 결성한다.
이때, 와 가 연합을 결성하고 와 가 연합을 결성했다면 와  역시 위 조건을 만족하지 않더라도 같은 연합에 속해있는 것으로 본다.

다른 섬과 연합을 결성하지 않은 섬들도 각각 하나의 연합에 속해 있는 것으로 볼 때, 개의 섬 사이에 존재하는 연합의 개수를 구해보자.


예제 설명


첫 번째 예제에서는 정의에 따라 1번 섬과 4번 섬이 연합을 결성한다. 이외에 연합을 결성하는 다른 섬 쌍은 존재하지 않는다.
따라서 [1, 4][2][3] 세 개의 연합이 존재하므로, 3을 출력해야 한다.

두 번째 예제에서는 정의에 따라 1번 섬과 2번 섬1번 섬 3 섬2 섬 3번 섬이 연합을 결성한다.
따라서 [1, 2, 3] 한 개의 연합이 존재하므로, 1을 출력해야 한다.


입력


첫째 줄에 섬의 개수 과 다리의 개수 이 공백을 두고 주어진다.
다음 개의 줄에는 가 공백을 두고 주어진다. 번 섬에서 번 섬으로 가는 다리가 있다는 의미이다.



  • 입력에서 주어지는 모든 수는 정수이다.


출력


개의 섬 사이에 존재하는 연합의 개수를 출력한다.

Input/Output Example
:
Blank
:
Line Break
:
Tab
Example 1
Input
46
23
41
12
34
14
24
Output
3
Example 2
Input
36
12
13
21
23
31
32
Output
1
⋇ Please keep the input and output formats carefully
Q&A
누구나 질문하고 답변할 수 있는 Q&A입니다. 문제를 풀며 어려웠던 부분에 대해 질문해보세요.
Registered Questions (0)