#include <bits/stdc++.h>
using namespace std;
struct help {
 public:
  int n;
  char vowel;
  string word;
};
bool coomp(const help &p1, const help &p2) {
  if (p1.n == p2.n) {
    if (p1.vowel > p2.vowel)
      return true;
    else
      return false;
  }
  if (p1.n > p2.n)
    return true;
  else
    return false;
}
int main() {
  int n;
  cin >> n;
  string word;
  vector<help> str(n);
  for (int i = 0; i < n; ++i) {
    cin >> word;
    str[i].word = word;
    int count_vowel = 0;
    for (int j = word.length() - 1; j >= 0; --j)
      if (word[j] == 'a' || word[j] == 'e' || word[j] == 'o' ||
          word[j] == 'i' || word[j] == 'u') {
        if (count_vowel == 0) str[i].vowel = word[j];
        ++count_vowel;
      }
    str[i].n = count_vowel;
  }
  sort(str.begin(), str.end(), coomp);
  stack<string> complete_duo;
  stack<string> semicomplete_duo;
  if (n <= 3) {
    cout << 0;
    return 0;
  }
  for (int i = n - 1; i >= 1; --i) {
    if (str[i].n == str[i - 1].n && str[i].vowel == str[i - 1].vowel) {
      complete_duo.push(str[i].word);
      complete_duo.push(str[i - 1].word);
      str.erase(str.begin() + i);
      str.erase(str.begin() + i - 1);
      --i;
    }
  }
  for (int i = 0; i < 1ll * str.size() - 1; ++i) {
    if (str[i].n == str[i + 1].n) {
      semicomplete_duo.push(str[i].word);
      semicomplete_duo.push(str[i + 1].word);
      ++i;
    }
  }
  if (complete_duo.size() <= semicomplete_duo.size())
    cout << complete_duo.size() / 2 << endl;
  else
    cout << ((complete_duo.size() + semicomplete_duo.size())) / 4 << endl;
  string buf_1, buf_2;
  while (complete_duo.size() != 0) {
    if (semicomplete_duo.size() != 0) {
      cout << semicomplete_duo.top() << ' ' << complete_duo.top() << endl;
      semicomplete_duo.pop();
      complete_duo.pop();
      cout << semicomplete_duo.top() << ' ' << complete_duo.top() << endl;
      semicomplete_duo.pop();
      complete_duo.pop();
      continue;
    } else {
      if (complete_duo.size() >= 4) {
        cout << complete_duo.top() << ' ';
        complete_duo.pop();
        buf_1 = complete_duo.top();
        complete_duo.pop();
        cout << complete_duo.top() << endl;
        complete_duo.pop();
        buf_2 = complete_duo.top();
        complete_duo.pop();
        cout << buf_1 << ' ' << buf_2 << endl;
      } else {
        break;
      }
    }
  }
}
