#include #include #include #include using namespace std; setpredecessors[400]; vectoranswer; int m, n; bool Compare(set a, set b) { return (a.size() < b.size()); } int main() { freopen("lottery.in", "r", stdin); scanf("%d", &n); for (int i = 0; i < n; i++) { int a, b; scanf("%d%d", &a, &b); predecessors[b - 1].insert(a - 1); if (a > m) m = a; if (b > m) m = b; } for (int i = 0; i < m; i++) predecessors[i].insert(i); fclose(stdin); for (int i = 0; i < m; i++) { sort(predecessors + i, predecessors + m, Compare); int a = *(predecessors[i].begin()); answer.push_back(a + 1); for (int j = i + 1; j < m; j++) { set::iterator it = predecessors[j].find(a); if (it != predecessors[j].end()) predecessors[j].erase(it); } } freopen("lottery.out", "w" , stdout); printf("%d", answer[0]); for (int i = 1; i < m; i++) printf(" %d", answer[i]); printf("\n"); fclose(stdout); return 0; }