

vector<vector<int>> solve(int n) {
    int r1 = compare({Triangle(0, 1, 2), Triangle(0, 3, 2)}, {Triangle(0, 1, 3), Triangle(3, 1, 2)});
    int r2 = compare({Triangle(0, 1, 2), Triangle(0, 3, 1)}, {Triangle(0, 2, 3), Triangle(3, 1, 2)});
    int r3 = compare({Triangle(0, 1, 3), Triangle(0, 3, 2)}, {Triangle(0, 1, 2), Triangle(3, 1, 2)});
    vector<vector<int>> ans;
    if(r1 == 0){
        ans.push_back({0, 1, 2, 3});
    } else if(r2 == 0){
        ans.push_back({0, 2, 1, 3});
    } else if(r3 == 0){
        ans.push_back({0, 1, 3, 2});
    } else{
        int e1 = compare({Triangle(0, 1, 2)}, {Triangle(0, 1, 3)}) + compare({Triangle(0, 1, 2)}, {Triangle(0, 2, 3)}) + compare({Triangle(0, 1, 2)}, {Triangle(2, 1, 3)});
        int e2 = compare({Triangle(0, 1, 3)}, {Triangle(0, 1, 2)}) + compare({Triangle(0, 1, 3)}, {Triangle(0, 2, 3)}) + compare({Triangle(0, 1, 3)}, {Triangle(2, 1, 3)});
        int e3 = compare({Triangle(0, 3, 2)}, {Triangle(0, 1, 3)}) + compare({Triangle(0, 3, 2)}, {Triangle(0, 2, 1)}) + compare({Triangle(0, 3, 2)}, {Triangle(2, 1, 3)});
        int e4 = compare({Triangle(3, 1, 2)}, {Triangle(0, 1, 3)}) + compare({Triangle(3, 1, 2)}, {Triangle(0, 2, 1)}) + compare({Triangle(3, 1, 2)}, {Triangle(2, 1, 3)});
        if(e1 == 3)
        ans.push_back({0, 1, 2});
        else if(e2 == 3)
        ans.push_back({0, 1, 3});
        else if(e3 == 3)
        ans.push_back({0, 3, 2});
        else
        ans.push_back({3, 1, 2});
    }
    return ans;
}

