#include "triangles.h"
#include <bits/stdc++.h>
using ll = long long;
using namespace std;
#define all(a) a.begin(), a.end()

vector<vector<int> > solve(int n) {
    // Example of compare:
    // Пример использования функции compare:
    vector<Triangle> f(4);
    for (ll i = 0; i < n; i++) {
        vector<ll> v;
        for (ll j = 0; j < n; j++) {
            if (i != j) v.push_back(j);
        }
        f[i] = Triangle(v[0], v[1], v[2]);
    }
    vector<ll> res(4);
    res[1] = compare({f[0], f[1]}, {f[2], f[3]});
    res[2] = compare({f[0], f[2]}, {f[1], f[3]});
    res[3] = compare({f[0], f[3]}, {f[1], f[2]});
    vector<vector<int> > ans;
    ll mn = 0;
    for (int j = 1; j < 4; j++) {
        if (res[j] == 0) {
            for (int k = 1; k < 4; k++) {
                if (k != j) {
                    ans.push_back({0, j, k});
                }
            }
            return ans;
        }
        bool ok = res[j] == 1;
        for (int k = 1; k < 4; k++) ok &= (k == j || res[k] == -1);
        if (ok) mn = j;
    }
    for (int s = 0; s < 4; s++) {
        if (s != mn) ans.push_back({f[s].i, f[s].j, f[s].k});
    }
    return ans;
    // vector<Triangle> left = {Triangle(0, 1, 2)};
    // vector<Triangle> right = {Triangle(0, 1, 2)};
    // int compare_result = compare(left, right);
    // // compare_result should be equal to 0.
    // // compare_result будет равняться нулю, так как сравнивались одинаковые треугольники.
    //
    // // Example of return:
    // // Пример возвращаемого значения:
    // vector<vector<int> > ans;
    // ans.push_back(vector<int>(n));
    // for (int i = 0; i < n; ++i) {
    //     ans[0][i] = i;
    // }
    // return ans;
}
