#include <iostream> #include <algorithm> #include <vector> const int MAXN = 100000; const long long LIM =1000000000000000000ll; int n,m,deg[MAXN]; std::vector<int> E[MAXN]; long long k, f[MAXN]; int next(std::vector<int> cand, long long &k) { std::sort(cand.begin(), cand.end()); for (int u : cand) { if ( __(1)__ ) return u; k -= f[u]; } return -1; } int main() { std::cin >>n>> m >> k; for (int i=0;i<m; ++i){ int u, v; std::cin >> u>> v; E[u].push_back(v); ++deg[v]; } std::vector<int> Q; for (int i= 0;i<n; ++i) if (!deg[i]) Q.push_back(i); for (int i=0;i<n;++i){ int u= Q[i]; for (int v :E[u]){ if ( __(2)__ ) Q.push_back(v); --deg[v]; } } std::reverse(Q.begin(), Q.end()); for (int u:Q){ f[u] = 1; for (int v : E[u]) f[u] = __(3)__ ; } int u= next(Q,k); std::cout << u << std::endl; while ( __(4)__ ) { __(5)__ ; u= next(E[u], k); std::cout << u << std::end1; } return 0; }