#include <bits/stdc++.h>
using namespace std;
map<int, int> m;
int a[100005];
int res[100005][3];
int v[100005], c[100005];
int main() {
  int n, x, y, z, u = 0;
  cin >> n;
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    if (m.count(a[i]) == 0) m[a[i]] = u++;
    x = m[a[i]];
    v[x] = a[i];
    c[x]++;
  }
  pair<int, int> p, card[3];
  set<pair<int, int> > q;
  set<pair<int, int> >::iterator it1;
  for (int i = 0; i < u; i++) {
    p = make_pair(c[i], v[i]);
    q.insert(p);
  }
  int ans = 0;
  while (q.size() >= 3) {
    for (int i = 0; i < 3; i++) {
      it1 = q.end();
      it1--;
      card[i] = *it1;
      q.erase(it1);
    }
    for (int i = 0; i < 3; i++) {
      res[ans][i] = card[i].second;
      card[i].first--;
      if (card[i].first > 0) q.insert(card[i]);
    }
    ans++;
  }
  cout << ans << endl;
  for (int i = 0; i < ans; i++) {
    sort(res[i], res[i] + 3);
    printf("%d %d %d\n", res[i][2], res[i][1], res[i][0]);
  }
  return 0;
}
