#include using namespace std; typedef long long ll; typedef long double ld; #define rep(i, a, n) for (int i = (a); i < (n); i++) #define per(i, a, n) for (int i = (n) - 1; i >= (a); i--) #define FOR(i, n) rep(i, 0, (n)) #define fi first #define se second //char endl = '\n'; int main(void) { ios_base::sync_with_stdio(false); int n, m; cin >> n >> m; vector> gt(n); vector> g(n); rep(i,0,m) { int a, b; cin >> a >> b; a--; b--; gt[b].push_back(a); g[a].push_back(b); } vector deg(n, 0); vector from(n,-1); /* rep(a,0,n) { cout << "a!!!" << a << endl; for(auto b : g[a]) { cout << b << " "; } cout << endl; } */ rep(b,0,n) { if (gt[b].empty()) continue; int a = gt[b][0]; deg[a]++; from[b]=a; } bool done = false; while(!done) { done = true; rep(a,0,n) { if (from[a] == -1) continue; if (deg[a] == 0) { for (auto b : g[a]) { int c = from[b]; if (deg[c] > 1) { from[b] = a; deg[c]--; deg[a]++; done = false; break; } } } } } int res = n - 2; rep(a,0,n) { if (deg[a] == 0) { res++; } } // rep(a,0,n) cout << deg[a] << " "; cout << endl; cout << (m-res) << endl; return 0; }