#include <bits/stdc++.h>
using namespace std;
template <typename Arg1>
void prn(Arg1&& arg1) {
  cout << arg1 << "\n";
}
template <typename Arg1, typename... Args>
void prn(Arg1&& arg1, Args&&... args) {
  cout << arg1 << " ";
  prn(args...);
}
template <typename Arg1>
void prs(Arg1&& arg1) {
  cout << arg1 << " ";
}
template <typename Arg1, typename... Args>
void prs(Arg1&& arg1, Args&&... args) {
  cout << arg1 << " ";
  prs(args...);
}
template <typename Arg1>
void read(Arg1&& arg1) {
  cin >> arg1;
}
template <typename Arg1, typename... Args>
void read(Arg1&& arg1, Args&&... args) {
  cin >> arg1;
  read(args...);
}
const int N = 2e3 + 1;
int n;
struct node {
  int par = -1, child = 0;
  bool typ;
  vector<int> vals;
};
vector<node> vec;
bool freddy[N];
void solve() {
  read(n);
  for (int i = 0; i < 3 * n; ++i) {
    int x;
    read(x);
    freddy[x] = 1;
  }
  vector<int> stak;
  for (int i = 1; i <= 6 * n; ++i) {
    if (!stak.empty() && vec[stak.back()].typ == freddy[i]) {
      node& cur = vec[stak.back()];
      cur.vals.push_back(i);
      if (cur.vals.size() == 3) {
        stak.pop_back();
      }
      continue;
    }
    node cur;
    cur.typ = freddy[i];
    cur.vals.push_back(i);
    if (!stak.empty()) {
      cur.par = stak.back();
      ++vec[stak.back()].child;
    }
    stak.push_back(vec.size());
    vec.push_back(cur);
  }
  assert(stak.empty());
  int n1 = vec.size();
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n1; ++j) {
      if (vec[j].child || !vec[j].typ) continue;
      for (int k = 0; k < 3; ++k) prs(vec[j].vals[k]);
      prn("");
      vec[j].child = 1e9;
      if (vec[j].par != -1) --vec[vec[j].par].child;
      break;
    }
    int idx = -1;
    for (int j = 0; j < n1; ++j) {
      if (vec[j].child || vec[j].typ) continue;
      if (vec[j].par != -1) {
        idx = j;
        break;
      }
      idx = j;
    }
    for (int k = 0; k < 3; ++k) prs(vec[idx].vals[k]);
    prn("");
    vec[idx].child = 1e9;
    if (vec[idx].par != -1) --vec[vec[idx].par].child;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t = 1;
  for (int tc = 1; tc <= t; ++tc) {
    solve();
  }
  return 0;
}
