#include #include #include #include #include #include using namespace std; int n,newArr[405],m; struct ba { int before, after; }arr[1301]; void inAll() { cin>>n; for (int i = 0; i < n; i++) cin>>arr[i].before>>arr[i].after, m = max(m, arr[i].before), m = max(m, arr[i].after); } int g[405][405],u[405]; void createG() { for (int i = 0; i < n; i++) g[arr[i].before-1][arr[i].after-1] = 1; } vector l; void dfs(int i) { u[i] = 1; for (int k = 0; k < n; k++) if (g[i][k] and !u[k]) dfs(k); l.push_back(i+1); } void findSol() { createG(); for (int i = 0; i < m; i++) if (!u[i]) dfs(i); for (int i = l.size() - 1; i > 0; i--) cout<