도미노
장난감 방에 총 N개의 도미노가 일렬로 서 있는 것이 아니라, 방 바닥 여기저기에 자유롭게 배치되어 있습니다.
각 도미노는 1번부터 N번까지 번호가 매겨져 있습니다.
이 도미노들은 특이하게 배치되어 있어서, 어떤 u번 도미노가 쓰러질 때 그 충격이나 연쇄 효과로 인해 멀리 있는 v번 도미노가 물리적으로 정밀하게 조준되어 같이 쓰러지게 설계되어 있습니다.
하지만 u가 쓰러질 때 v가 쓰러진다고 해서, 반대로 v를 쓰러뜨렸을 때 u가 반드시 쓰러지는 것은 아닙니다. 심지어 도미노들이 서로 고리를 이루며 체인처럼 얽혀 있을 수도 있습니다.
모든 도미노를 전부 쓰러뜨리고 싶을 때, 손가락으로 직접 밀어서 쓰러뜨려야 하는 도미노의 최소 개수를 구하는 프로그램을 작성하시오.
입력
첫 번째 줄에 도미노의 개수 N과 도미노 사이의 연쇄 관계의 개수 M이 공백으로 구분되어 주어진다.
두 번째 줄부터 M개의 줄에 걸쳐 각 연쇄 관계를 나타내는 두 정수 u와 v가 공백으로 구분되어 주어진다.
이는 u번 도미노가 쓰러지면 v번 도미노가 이어서 쓰러짐을 의미합니다.
출력
모든 도미노를 쓰러뜨리기 위해 손으로 밀어야 하는 최소 도미노 개수를 출력한다.
제약 조건
- 1 <= N <= 100,000
- 1 <= M <= 100,000
- 1 <= u, v <= N
- u와 v가 같을 수 있으며, 동일한 관계가 중복되어 주어질 수 있습니다.
예제 입력 1
5 5
1 2
2 3
3 1
3 4
4 5
예제 출력 1
1
예제 입력 2
4 3
1 2
2 3
4 3
예제 출력 2
2
코멘트