#include "triangles.h"
#include <bits/stdc++.h>

using namespace std;

vector<vector<int>> con(vector<Triangle> a) {
    vector<vector<int>> res;
    for (auto to : a) {
        vector<int> cur;
        cur.push_back(to.i);
        cur.push_back(to.j);
        cur.push_back(to.k);
        res.push_back(cur);
    }
    return res;
}

vector<vector<int>> solve(int n) {
    vector<vector<int>> res;
    vector<Triangle> a1 = {{0, 1, 2}, {0, 1, 3}};
    vector<Triangle> a2 = {{0, 2, 1}, {0, 2, 3}};
    vector<Triangle> a3 = {{0, 3, 2}, {0, 3, 1}};

    vector<Triangle> a = {{0, 1, 2}, {0, 1, 3}, {0, 2, 1}, {0, 2, 3}, {0, 3, 2}, {0, 3, 1}};

    if (compare(a1, a2) == -1) {
        if (compare(a1, a3) == -1) {

            for (auto cur : a) {
                if (compare(a1, {cur}) == -1) {
                    res = con({cur});
                    a1 = {cur};
                }
            }
            return res;
            return con(a1);
        } else {
            for (auto cur : a) {
                if (compare(a3, {cur}) == -1) {
                    res = con({cur});
                    a3 = {cur};
                }
            }
            return res;
            return con(a3);
        }
    } else {
        if (compare(a2, a3) == -1) {
            for (auto cur : a) {
                if (compare(a2, {cur}) == -1) {
                    res = con({cur});
                    a2 = {cur};
                }
            }
            return res;
            return con(a2);
        } else {
            for (auto cur : a) {
                if (compare(a3, {cur}) == -1) {
                    res = con({cur});
                    a3 = {cur};
                }
            }
            return res;
            return con(a3);
        }
    }
}