#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  map<pair<int, int>, vector<string>> m1;
  map<string, int> m2;
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    int cnt = 0;
    char last;
    for (int i = 0; i < s.length(); i++) {
      if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' ||
          s[i] == 'u') {
        cnt += 1;
        last = s[i];
      }
    }
    m1[{cnt, last}].push_back(s);
    m2[s]++;
  }
  vector<string> v1, v2, v3, v4;
  map<int, vector<string>> m3;
  for (auto it : m1) {
    vector<string> d = it.second;
    int y = d.size();
    if (y == 1) {
      m3[it.first.first].push_back(d[0]);
    } else if (y % 2 == 0) {
      for (int i = 0; i < y; i += 2) {
        v2.push_back(d[i]);
        v4.push_back(d[i + 1]);
      }
    } else {
      for (int i = 0; i < y - 1; i += 2) {
        v2.push_back(d[i]);
        v4.push_back(d[i + 1]);
      }
      m3[it.first.first].push_back(d[y - 1]);
    }
  }
  map<int, vector<string>> m4;
  for (auto it : m3) {
    vector<string> d = it.second;
    int y = d.size();
    if (y == 1) {
      m4[it.first].push_back(d[0]);
    } else if (y % 2 == 0) {
      for (int i = 0; i < y; i += 2) {
        v1.push_back(d[i]);
        v3.push_back(d[i + 1]);
      }
    } else {
      for (int i = 0; i < y - 1; i += 2) {
        v1.push_back(d[i]);
        v3.push_back(d[i + 1]);
      }
      m4[it.first].push_back(d[y - 1]);
    }
  }
  if (v2.size() == 0 || (v1.size() == 0 && v2.size() == 1)) {
    cout << 0 << endl;
  } else if (v2.size() <= v1.size()) {
    cout << v2.size() << endl;
    for (int i = 0; i < v2.size(); i++) {
      cout << v1[i] << " " << v2[i] << endl;
      cout << v3[i] << " " << v4[i] << endl;
    }
  } else {
    int c = (v1.size() + v2.size()) / 2;
    int y = min(v1.size(), v2.size());
    cout << c << endl;
    for (int i = 0; i < y; i++) {
      cout << v1[i] << " " << v2[i] << endl;
      cout << v3[i] << " " << v4[i] << endl;
    }
    for (int i = y; i + 1 < v2.size(); i += 2) {
      cout << v2[i + 1] << " " << v2[i] << endl;
      cout << v4[i + 1] << " " << v4[i] << endl;
    }
  }
}
