#include <iostream>
#include <cstring>
using namespace std;
const int MAX_LENGTH_WORD = 20;
const int MAX_LENGTH_VOWELS =10;
const int MAX_LENGTH = 100;
int vowelsCount(const char *word) {
int vowelsNo = 0;
char allVowels[MAX_LENGTH_VOWELS + 1] = "aeiouAEIOU";
for (int i = 0; word[i]; ++i) {
for (int j = 0; j <= MAX_LENGTH_VOWELS; ++j) {
if (word[i] == allVowels[j]) {
++vowelsNo;
}
}
}
return vowelsNo;
}
void sortWords(char words[MAX_LENGTH][MAX_LENGTH_WORD + 1], int noWordsPar) {
for (int i = 0; i < noWordsPar - 1; ++i) {
for (int j = i + 1; j < noWordsPar; ++j) {
if (vowelsCount(words[i]) > vowelsCount(words[j]) ||
(vowelsCount(words[i]) == vowelsCount(words[j]) &&
strcmp(words[i], words[j]) > 0)) {
char temp[MAX_LENGTH_WORD + 1];
strcpy(temp, words[i]);
strcpy(words[i], words[j]);
strcpy(words[j], temp);
}
}
}
}
int main() {
char words[MAX_LENGTH][MAX_LENGTH_WORD + 1];
int noWords = 0;
while (cin >> words[noWords]) {
++noWords;
}
sortWords(words, noWords);
for (int i = 0; i < noWords; ++i) {
cout << words[i] << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNQVhfTEVOR1RIX1dPUkQgPSAyMDsKY29uc3QgaW50IE1BWF9MRU5HVEhfVk9XRUxTID0xMDsKY29uc3QgaW50IE1BWF9MRU5HVEggPSAxMDA7CgppbnQgdm93ZWxzQ291bnQoY29uc3QgY2hhciAqd29yZCkgewogICAgaW50IHZvd2Vsc05vID0gMDsKICAgIGNoYXIgYWxsVm93ZWxzW01BWF9MRU5HVEhfVk9XRUxTICsgMV0gPSAiYWVpb3VBRUlPVSI7CiAgICBmb3IgKGludCBpID0gMDsgd29yZFtpXTsgKytpKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPD0gTUFYX0xFTkdUSF9WT1dFTFM7ICsraikgewogICAgICAgICAgICBpZiAod29yZFtpXSA9PSBhbGxWb3dlbHNbal0pIHsKICAgICAgICAgICAgICAgICsrdm93ZWxzTm87CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gdm93ZWxzTm87Cn0Kdm9pZCBzb3J0V29yZHMoY2hhciB3b3Jkc1tNQVhfTEVOR1RIXVtNQVhfTEVOR1RIX1dPUkQgKyAxXSwgaW50IG5vV29yZHNQYXIpIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbm9Xb3Jkc1BhciAtIDE7ICsraSkgewogICAgICAgIGZvciAoaW50IGogPSBpICsgMTsgaiA8IG5vV29yZHNQYXI7ICsraikgewogICAgICAgICAgICBpZiAodm93ZWxzQ291bnQod29yZHNbaV0pID4gdm93ZWxzQ291bnQod29yZHNbal0pIHx8IAogICAgICAgICAgICAgICAgKHZvd2Vsc0NvdW50KHdvcmRzW2ldKSA9PSB2b3dlbHNDb3VudCh3b3Jkc1tqXSkgJiYgCiAgICAgICAgICAgICAgICBzdHJjbXAod29yZHNbaV0sIHdvcmRzW2pdKSA+IDApKSB7CiAgICAgICAgICAgICAgICBjaGFyIHRlbXBbTUFYX0xFTkdUSF9XT1JEICsgMV07CiAgICAgICAgICAgICAgICBzdHJjcHkodGVtcCwgd29yZHNbaV0pOwogICAgICAgICAgICAgICAgc3RyY3B5KHdvcmRzW2ldLCB3b3Jkc1tqXSk7CiAgICAgICAgICAgICAgICBzdHJjcHkod29yZHNbal0sIHRlbXApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CmludCBtYWluKCkgewogICAgY2hhciB3b3Jkc1tNQVhfTEVOR1RIXVtNQVhfTEVOR1RIX1dPUkQgKyAxXTsKICAgIGludCBub1dvcmRzID0gMDsKICAgIHdoaWxlIChjaW4gPj4gd29yZHNbbm9Xb3Jkc10pIHsKICAgICAgICArK25vV29yZHM7CiAgICB9CiAgICBzb3J0V29yZHMod29yZHMsIG5vV29yZHMpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBub1dvcmRzOyArK2kpIHsKICAgICAgICBjb3V0IDw8IHdvcmRzW2ldIDw8ICJcbiI7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==