#include <bits/stdc++.h>
using namespace std;
map<int, int> ball;
int n, r;
int k;
int ouq[120000];
int oup;
bool chk(int num) {
  int su = 0;
  if (num == 0) return true;
  for (auto p : ball) {
    int tco = p.second;
    if (p.second >= num) {
      su += num;
    } else {
      su += tco;
    }
  }
  return su >= 3 * num;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &r);
    ball[r]++;
  }
  int le = 0, ri = 40000;
  int mid;
  while (le < ri) {
    mid = le + (ri - le) / 2;
    if (chk(mid)) {
      k = mid;
      le = mid + 1;
    } else {
      ri = mid - 1;
    }
  }
  if (chk(le)) k = le;
  printf("%d\n", k);
  if (k > 0) {
    for (auto p : ball) {
      int cou = p.second;
      if (p.second >= k) {
        cou = k;
      }
      while (cou--) {
        ouq[oup++] = p.first;
      }
    }
    for (int i = 0; i < k; i++) {
      printf("%d %d %d\n", ouq[i + k + k], ouq[i + k], ouq[i]);
    }
  }
  return 0;
}
