바이트맨은 방향 그래프를 연구하고 있다. 그는 특히 사이클이 없는 그래프를 좋아하는데, 이런 그래프에서는 많은 문제를 간단하고 효율적으로 풀 수 있기 때문이다. 그는 임의의 방향 그래프를 여러 비순환 그래프의 합으로 나타내는 방법을 찾고 있다.
주어진 방향 그래프의 간선 집합을, 각 부분집합에 속한 간선만으로 이루어진 방향 그래프가 사이클을 포함하지 않도록 하면서 가능한 한 적은 수의 부분집합으로 분할하려고 한다. 이때 필요한 부분집합의 최소 개수를 구하여라.
첫째 줄에 정점의 수 n과 간선의 수 m이 주어진다 (1≤n,m≤100,000). 정점에는 1부터 n까지 번호가 매겨져 있다. 이어지는 m개의 줄에는 각각 두 정수 ai, bi (1≤ai,bi≤n, ai=bi)가 주어지며, 이는 정점 ai에서 정점 bi로 향하는 방향 간선을 나타낸다. 그래프에는 중복된 간선이 없다.
그래프의 간선 집합을 비순환 그래프들로 분할할 때 필요한 부분집합의 최소 개수를 정수 하나로 한 줄에 출력한다.

그림은 예제를 나타낸 것이다. 원은 정점을, 선과 호(실선과 점선)는 간선을 나타낸다. 원 옆의 숫자는 정점 번호이고, 선이나 호 옆의 숫자는 간선 번호이다. 이 그래프의 간선은 두 개의 비순환 그래프로 나눌 수 있다. 실선 간선이 첫 번째 그래프를, 점선 간선이 두 번째 그래프를 이루므로, 이 그래프에 대한 답은 2이다.