#include <bits/stdc++.h>
using namespace std;
int main() {
  int N;
  cin >> N;
  vector<int> balls(N);
  for (int i = 0; i < N; i++) cin >> balls[i];
  sort(balls.begin(), balls.end());
  priority_queue<pair<int, int>, vector<pair<int, int>>, less<pair<int, int>>>
      Q;
  int count = 1;
  for (int i = 1; i <= N; i++) {
    if (i == N or balls[i] != balls[i - 1]) {
      Q.emplace(count, balls[i - 1]);
      count = 1;
    } else
      count++;
  }
  int K = 0;
  vector<vector<int>> result;
  while (!Q.empty()) {
    pair<int, int> first, second, third;
    first = Q.top();
    Q.pop();
    if (Q.empty()) break;
    second = Q.top();
    Q.pop();
    if (Q.empty()) break;
    third = Q.top();
    Q.pop();
    vector<int> temp{first.second, second.second, third.second};
    result.push_back(temp);
    K++;
    first.first--;
    second.first--;
    third.first--;
    if (first.first != 0) Q.push(first);
    if (second.first != 0) Q.push(second);
    if (third.first != 0) Q.push(third);
  }
  cout << K << endl;
  for (vector<int> &X : result) {
    sort(X.begin(), X.end());
    reverse(X.begin(), X.end());
    cout << X[0] << " " << X[1] << " " << X[2] << endl;
  }
}
