#include <bits/stdc++.h>
using namespace std;
struct blk {
  int x, y, z;
  blk(int nx = 0, int ny = 0, int nz = 0) {
    x = nx;
    y = ny;
    z = nz;
  }
} a[405];
int x, n, al, ty[1205], bt, cnt = 0;
set<int> st;
set<int>::iterator it, it2, it3;
void gof(int l, int r) {
  for (int i = l; i < r; i++) swap(a[i], a[i + 1]);
}
int main() {
  scanf("%d", &n);
  n = 6 * n;
  for (int i = 1; i <= n / 2; i++) {
    scanf("%d", &x);
    ty[x] = 1;
  }
  for (int i = 1; i <= n; i++) st.insert(i);
  for (int i = n; i; i -= 3) {
    bt = -1;
    int j;
    for (j = 1, it = st.begin(); j + 2 <= i; j++, it++) {
      it2 = it;
      it2++;
      it3 = it2;
      it3++;
      if (ty[*it] != ty[*it2] || ty[*it2] != ty[*it3]) continue;
      bt = *it;
      if (ty[bt] == 1) break;
    }
    if (ty[bt] == 0) {
      bt = -1;
      int tot = 0;
      for (j = 1, it = st.begin(); j <= i; j++, it++) {
        tot++;
        if (ty[*it] == 1) continue;
        int sum = 0;
        while (j <= i && ty[*it] == 0) sum++, j++, it++;
        if (sum % 3 == 0) {
          it2 = it;
          it2--;
          it2--;
          it3 = it2;
          it3--;
          bt = *it3;
          if (tot > 1) break;
        }
        if (j > i) break;
      }
    }
    it = st.find(bt);
    it2 = it;
    it2++;
    it3 = it2;
    it3++;
    a[++cnt] = blk(*it, *it2, *it3);
    st.erase(it);
    st.erase(it2);
    st.erase(it3);
  }
  for (int i = n / 3; i > 2; i -= 2) {
    if (ty[a[i - 1].x] == 1) {
      if (ty[a[i - 2].x] == 0) continue;
      int j;
      for (j = i - 3; j && ty[a[j].x] == 1; j--)
        ;
      bt = i - 1;
      for (int k = j + 1; k < i - 1; k++)
        if (a[k].x < a[j].x && a[k].z > a[j].x) bt = k;
      gof(bt, i - 1);
      gof(j, i - 2);
    } else {
      int j;
      for (j = i - 2; j && ty[a[j].x] == 0; j--)
        ;
      bt = i;
      for (int k = j + 1; k < i; k++)
        if (a[k].x < a[j].x && a[k].z > a[j].z) bt = k;
      gof(bt, i);
      gof(j, i - 1);
    }
  }
  for (int i = 1; i <= n / 3; i++) printf("%d %d %d\n", a[i].x, a[i].y, a[i].z);
  return 0;
}
