#include <bits/stdc++.h>
using namespace std;
using ll = long long;
void debug(...) {}
const int maxn = 210 * 6;
int n, mas[maxn];
bool con[maxn][maxn];
int id[maxn];
vector<int> edge[maxn], inside[maxn], rev[maxn];
vector<int> go[2];
int indeg[maxn], m;
bool in[maxn], out[maxn];
int pick(vector<int> &cho) {
  debug(begin(cho), end(cho));
  vector<int> tar;
  unordered_map<int, int> cnt;
  for (int u : cho)
    for (int x : edge[u]) ++cnt[x];
  assert(cho.size());
  int t = maxn, p = cho[0];
  for (auto [id, ti] : cnt)
    if (ti < t) t = ti, p = id;
  int use = cho[0];
  for (int u : cho)
    if (indeg[u] == 0)
      if (count(begin(edge[u]), end(edge[u]), p)) {
        use = u;
        break;
      }
  cho.erase(find(begin(cho), end(cho), use));
  for (int x : edge[use]) {
    if ((--indeg[x]) == 0) {
      go[mas[x]].emplace_back(x);
      0;
    }
    0;
  }
  out[use] = true;
  return use;
}
void getans() {
  for (int i = 1; i <= m; ++i) {
    if (in[id[i]]) continue;
    in[id[i]] = true;
    if (indeg[id[i]] == 0) go[mas[i]].emplace_back(id[i]);
  }
  vector<int> res;
  while (go[0].size() + go[1].size()) {
    res.emplace_back(pick(go[1]));
    res.emplace_back(pick(go[0]));
  }
  for (int u : res) {
    for (int v : inside[u]) cout << v << ' ';
    cout << '\n';
  }
}
void solve() {
  vector<pair<int, vector<int>>> st;
  for (int i = 1; i <= m; ++i) {
    if (st.empty() || st.back().first != mas[i])
      st.emplace_back(mas[i], vector<int>{i});
    else {
      st.back().second.emplace_back(i);
      if (st.back().second.size() == 3) {
        auto V = st.back().second;
        inside[V[0]] = V;
        for (int u : V) id[u] = V[0];
        for (int j = V[0] + 1; j < V[2]; ++j) {
          if (id[j] && !con[id[j]][id[i]] && mas[i] != mas[j]) {
            edge[id[j]].emplace_back(id[i]), con[id[j]][id[i]] = true;
            rev[id[i]].emplace_back(id[j]);
            ++indeg[id[i]];
          }
        }
        st.pop_back();
      }
    }
  }
  assert(st.empty());
  getans();
}
signed main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  cin >> n;
  m = 6 * n;
  for (int v, i = 0; i < 3 * n; ++i) {
    cin >> v;
    mas[v] = 1;
  }
  solve();
}
