#include <bits/stdc++.h>
using namespace std;
int l, c;
char arr[20];
vector<char> vec;
bool is_valid(const char &elem) { // 해당 문자가 모음인지
return (elem == 'a' || elem == 'e' || elem == 'i' || elem == 'o' || elem == 'u');
}
void dfs(int level, int start, int cnt1, int cnt2) {
if (level == l) {
if (cnt1 < 2 || cnt2 < 1) return; // 자음이 2개 미만이거나 모음이 1개 미만이면 출력 X
for (int i = 0; i < l; ++i) {
cout << arr[i];
}
cout << '\n';
return;
}
for (int i = start; i < c; ++i) {
arr[level] = vec[i];
if (is_valid(arr[level])) {
dfs(level + 1, i + 1, cnt1, cnt2 + 1); // 문자가 모음인 경우 모음의 갯수를 카운트하여 재귀 함수 호출
} else {
dfs(level + 1, i + 1, cnt1 + 1, cnt2); // 문자가 자음인 경우 자음의 갯수를 카운트하여 재귀 함수 호출
}
}
}
void solve() {
cin >> l >> c;
for (int i = 0; i < c; ++i) {
char tmp;
cin >> tmp;
vec.push_back(tmp);
}
sort(vec.begin(), vec.end());
dfs(0, 0, 0, 0);
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
solve();
return 0;
}