#include <bits/stdc++.h>   using namespace std;   const int N = 1000000 + 5;   vector<int> g[N];   bool used[N];   int n, m;   int main() {     scanf( %d %d , &n, &m);     for (int i = 0; i < m; i++) {       int u, v;       scanf( %d %d , &u, &v);       u--, v--;       g[u].push_back(v);     }     for (int i = 0; i < n; i++) {       if (!used[i]) {         for (auto x : g[i]) {           if (x > i) used[x] = true;         }       }     }     for (int i = n - 1; i >= 0; i--) {       if (!used[i]) {         for (auto x : g[i]) {           used[x] = true;         }       }     }     int ans = 0;     for (int i = 0; i < n; i++) {       if (!used[i]) ans++;     }     printf( %d n , ans);     for (int i = 0; i < n; i++) {       if (!used[i]) printf( %d  , i + 1);     }     return 0;   }   