세진 바이러스

시설과 파이프로 이루어진 방향 그래프가 주어질 때, 모든 시설에 도달할 수 있는 시작 시설의 최소 개수를 구한다.

보통6그래프DFS동적 계획법면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

때는 2118년. 세상의 모든 강과 호수가 말랐다. 그런데 인경호만은 마르지 않았다. 지하에서 물이 계속 나오고 있어서 앞으로도 마르지 않는다.

인하대학교 학생들은 인경호의 물을 식수로 쓰려고 정수 시설을 세웠다. 시설은 인경호 안 NN개 구역에 하나씩 있고, 번호는 00번부터 N1N-1번까지 붙여 놓았다. 깨끗한 물만 흐르도록 시설 사이는 MM개의 파이프로 이었다. 파이프로 이어진 두 시설 사이에서 물은 한 방향으로만 흐른다. 예를 들어 11번 시설에서 22번 시설로 가는 파이프가 있으면 물은 11번에서 22번으로만 흐른다. 여기에 22번 시설에서 33번 시설로 가는 파이프까지 있으면 물은 11번에서 33번까지 흘러간다. 한 시설에 파이프가 여러 개 이어질 수도 있고, 하나도 이어지지 않을 수도 있다. 인하대학교는 학생이 굉장히 많아서 모든 정수 시설에서 최소한 한 명은 물을 마신다.

100100년째 CTP 회장을 맡고 있는 김세진은 이 소식을 듣고 계획을 세웠다. 정수 시설에 세진 바이러스를 넣는 것이다. 세진 바이러스를 먹은 사람은 모두 김세진처럼 변한다. 김세진의 목표는 인하대학교 학생 전원을 감염시키는 것이라서 모든 정수 시설이 감염되어야 한다. 바이러스 한 개를 시설 하나에 넣으면 그 시설이 감염되고, 감염된 시설에서 물이 흘러가는 시설도 모두 감염된다. 하지만 세진 바이러스는 생산비가 굉장히 비싸다. 그래서 세진이는 물이 흐르는 방향을 잘 파악해서 바이러스를 최소로만 생산하려 한다.

모든 정수 시설을 감염시키려면 바이러스를 몇 개 생산해야 하는지 구하자.

입력

첫째 줄에 시설의 수 NN(1N1000001 \le N \le 100000)과 파이프의 수 MM(1M1000001 \le M \le 100000)이 주어진다.

둘째 줄부터 MM개의 줄에 파이프로 이어진 두 시설의 번호 AA(0AN10 \le A \le N-1)와 BB(0BN10 \le B \le N-1)가 주어진다. AA BB가 주어지면 물이 AA번 시설에서 BB번 시설로 흐른다는 뜻이다. 같은 파이프는 최대 한 번만 주어진다.

출력

세진이가 생산해야 할 바이러스의 최소 개수 KK를 출력한다.