#include #include #include #include using namespace std; // class G{ // public: // int start, dest, prio; // G(int start, int dest, int prio); // ~G(); // G::G(int start, int dest, int prio) // { // start =start; // dest = dest; // prio=prio; // } // G::~G() // { // } // bool comp(G a, G b){ // return a.prio < b.prio; // } // bool equiv(G a, G b){ // return a.prio == b.prio; // } // }; int main(int argc, char *argv[]){ int h; int g; int startX; int startY; int destX; int destY; cin >> h >> g; vector hunters; for (int i = 0; i < h; i++) { hunters.push_back(i); } vector>> grooves(g); for (int i = 0; i < g; i++) { cin >> startX >> startY >> destX >> destY; startY--; grooves.push_back({startY, {startX -1 , destX -1}}); } sort(grooves.begin(), grooves.end()); // while(grooves.size()>0){ // G g = grooves.top(); // grooves.pop(); // int tmp = hunters[g.start]; // hunters[g.start] = hunters[g.dest]; // hunters[g.dest] = tmp; // } for (size_t i = 0; i < grooves.size(); i++) { int start = grooves[i].second.first; int dest = grooves[i].second.second; int tmp = hunters[start]; hunters[start] = hunters[dest]; hunters[dest] = tmp; } vector res(h); for (int i = 0; i < h; i++) { res[hunters[i]] = i + 1; } for (int i = 0; i < h; i++) { cout << res[i] << endl; } return 0; }