#include <bits/stdc++.h>
using namespace std;
int n, a[100111], cnt[11];
vector<int> res[100111];
int main() {
  while (scanf("%d", &n) == 1) {
    for (int i = (1), _b = (n); i <= _b; i++) res[i].clear();
    bool ok = true;
    memset(cnt, 0, sizeof cnt);
    for (int i = (1), _b = (n); i <= _b; i++) {
      scanf("%d", &a[i]);
      if (a[i] == 5 || a[i] == 7) ok = false;
      cnt[a[i]] += 1;
    }
    if (!ok || cnt[1] != n / 3 || cnt[6] < cnt[3]) {
      puts("-1");
      continue;
    }
    int x = 0;
    while (cnt[3] && cnt[6]) {
      ++x;
      res[x].push_back(1);
      res[x].push_back(3);
      res[x].push_back(6);
      --cnt[3];
      --cnt[6];
    }
    while (cnt[2] && (cnt[6] || cnt[4])) {
      ++x;
      res[x].push_back(1);
      res[x].push_back(2);
      --cnt[2];
      int t;
      if (cnt[4])
        t = 4;
      else
        t = 6;
      res[x].push_back(t);
      --cnt[t];
    }
    if (x != n / 3) {
      puts("-1");
      continue;
    }
    for (int x = (1), _b = (n / 3); x <= _b; x++)
      printf("%d %d %d\n", res[x][0], res[x][1], res[x][2]);
  }
  return 0;
}
