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