#include<bits/stdc++.h>
using namespace std;
const int N = 200000 + 5;
vector<int>V[N];
int dandu[N], f[N];
int ans = 0;
int bfs(int x) {
if(f[x]) return f[x];
int num = 0;
if (V[x].empty()) return 1;
for (int i = 1; i <= V[x].size(); i++) {
int q = V[x].back();
V[x].pop_back();
num += bfs(q);
}
f[x] = num;
return num;
}
int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= m; i++) {
int a, b;
cin >> a >> b;
V[a].push_back(b);
dandu[a] = 1;
dandu[b] = 1;
}
for (int i = 1; i <= n; i++) {
if (dandu[i]){
ans += bfs(i);
}
}
cout << ans;
return 0;
}