#include <bits/stdc++.h>
using namespace std;
struct ABC {
  int a;
  char b;
  string s;
  bool x;
  ABC() {}
  ABC(int a, char b, string s, bool x) : a(a), b(b), s(s), x(x) {}
};
bool operator<(ABC a, ABC b) {
  if (a.a != b.a)
    return a.a < b.a;
  else if (a.b != b.b)
    return a.b < b.b;
  else
    return a.s < b.s;
}
int N;
vector<ABC> v, v2;
queue<pair<string, string>> arr1, arr2;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> N;
  for (int i = 0; i < N; i++) {
    int a = 0;
    char b;
    string s;
    cin >> s;
    for (int j = 0; j < s.size(); j++) {
      if (s[j] == 'a' || s[j] == 'e' || s[j] == 'i' || s[j] == 'o' ||
          s[j] == 'u') {
        a++;
        b = s[j];
      }
    }
    v.push_back(ABC(a, b, s, 0));
  }
  sort(v.begin(), v.end());
  for (int i = 0; i < v.size(); i++) {
    if (v[i].x == 1) continue;
    int chk = 0;
    for (int j = i + 1; j < v.size(); j++) {
      if (v[i].a == v[j].a && v[i].b == v[j].b) {
        arr2.push({v[i].s, v[j].s});
        v[i].x = 1;
        v[j].x = 1;
        chk = 1;
        break;
      }
    }
    if (chk == 0) v2.push_back(v[i]);
  }
  if (v2.size() >= 2) {
    for (int i = 0; i < v2.size() - 1; i++) {
      if (v2[i].a == v2[i + 1].a && v2[i].x == 0) {
        arr1.push({v2[i].s, v2[i + 1].s});
        v2[i].x = 1;
        v2[i + 1].x = 1;
      }
    }
  }
  if (arr1.size() >= arr2.size()) {
    cout << arr2.size() << "\n";
    while (!arr2.empty()) {
      cout << arr1.front().first << " " << arr2.front().first << "\n"
           << arr1.front().second << " " << arr2.front().second << "\n";
      arr1.pop();
      arr2.pop();
    }
  } else {
    cout << arr1.size() + (arr2.size() - arr1.size()) / 2 << "\n";
    while (!arr1.empty()) {
      cout << arr1.front().first << " " << arr2.front().first << "\n"
           << arr1.front().second << " " << arr2.front().second << "\n";
      arr1.pop();
      arr2.pop();
    }
    while (arr2.size() >= 2) {
      string a, b, c, d;
      a = arr2.front().first;
      b = arr2.front().second;
      arr2.pop();
      c = arr2.front().first;
      d = arr2.front().second;
      arr2.pop();
      cout << a << " " << c << "\n" << b << " " << d << "\n";
    }
  }
  return 0;
}
