#include #include #include struct query { int x1, y1, x2, y2; bool operator<(const query& o) const { return y1 > o.y1; } }; int main() { int hunters = 0; int grooves = 0; std::cin >> hunters >> grooves; // index 0 skip std::vector positions = {hunters + 1}; std::vector queries; for (int i = 1; i < hunters + 1; ++i) { positions[i] = i; } for (int i = 0; i < grooves; ++i) { int x1, y1, x2, y2; std::cin >> x1 >> y1 >> x2 >> y2; queries.push_back({x1, y1, x2, y2}); } std::sort(queries.begin(), queries.end()); for (int i = 0; i < queries.size(); ++i) { int x1 = queries[i].x1; int x2 = queries[i].x2; int temp = positions[x1]; positions[x1] = positions[x2]; positions[x2] = temp; } for (int i = 1; i < hunters + 1; ++i) { std::cout << positions[i]; } return 0; }