import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Algorithm {
public static List<String> list = new ArrayList<>();
public static boolean[] visited = null;
public static String[] arr = null;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] arr1 = br.readLine().split(" ");
int n = Integer.parseInt(arr1[0]);
int m = Integer.parseInt(arr1[1]);
arr = br.readLine().split(" ");
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
visited = new boolean[arr.length];
dfs(0, n);
}
public static void dfs(int start, int n){
if(list.size() == n){
int mo = 0;
int ja = 0;
StringBuffer sb = new StringBuffer();
//최소 한개 몽므 && 최소 두개 자음
for(int i=0;i<list.size();i++){
String element = list.get(i);
sb.append(element);
if(element.equals("a") || element.equals("e") || element.equals("i") || element.equals("o") || element.equals("u")){
mo++;
} else{
ja++;
}
}
if(mo >= 1 && ja >= 2){
System.out.println(sb.toString());
}
return;
}
for(int i=0;i<visited.length;i++){
if(!visited[i] && i >= start){
//System.out.println("exe");
visited[i] = true;
list.add(arr[i]);
dfs(i, n);
list.remove(list.size() - 1);
visited[i] = false;
}
}
}
}
골드 5치고 쉬웠다.
처음에 틀려서 왜 틀렸지 하고 봤는데 자음갯수랑 모음갯수를 생각 안하고 풀어서 그랬다.