#include #include #include #include using namespace std; vector> adj; vector visited; void dfs(int u){ visited[u] = true; cout << u << " "; for(int v : adj[u]){ if(!visited[v]){ dfs(v); } } } int main() { int n, m; cin >> n >> m; adj.resize(n); visited.resize(n); for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; adj[u].push_back(v); } for(int i = 0; i < n; i++) { sort(adj[i].begin(), adj[i].end()); } dfs(0); for(int i = 0; i < n; i++) { if(!visited[i]) { dfs(i); } } return 0; }