import java.io.*;
import java.util.*;
public class App {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
// 조건 1
if (N < 2) {
System.out.println("NO");
return;
}
String A = br.readLine();
String B = br.readLine();
// 조건 2
if (A.charAt(0) != (B.charAt(0)) || A.charAt(N-1) != (B.charAt(N-1))) {
System.out.println("NO");
return;
}
// 조건 3
String AA = removeMoEum(A);
String BB = removeMoEum(B);
if (!AA.equals(BB)) {
System.out.println("NO");
return;
}
// 조건 4
HashMap<Character, Integer> aMap = wordMap(A);
HashMap<Character, Integer> bMap = wordMap(B);
if (!keySetSame(aMap.keySet(), bMap.keySet())) { // key 자체가 다른 경우
System.out.println("NO");
return;
}
for(Character c : aMap.keySet()) { // 같은 key이지만 value가 다른 경우
int valueA = aMap.get(c);
int valueB = bMap.get(c);
if (valueA != valueB) {
System.out.println("NO");
return;
}
}
System.out.println("YES"); // 모든 조건 통과
}
private static String removeMoEum(String word) {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < word.length(); i++) {
char c = word.charAt(i);
if (c == 'a' || c == 'e' || c =='i' || c == 'o' || c =='u') {
continue; // 모음이면 패스
}
sb.append(c); // 자음이면 sb에 붙이기
}
return sb.toString();
}
private static HashMap<Character, Integer> wordMap(String word) {
HashMap<Character, Integer> map = new HashMap<>();
for(int i = 0; i < word.length(); i++) {
char c = word.charAt(i);
map.put(c, map.getOrDefault(c, 0) + 1);
}
return map;
}
private static boolean keySetSame(Set<Character> s1, Set<Character> s2) {
if(s1.size() != s2.size()) {
return false; // key 개수가 다른 경우
}
for(Character c : s1) { // key 요소가 다른 경우
if(!s2.contains(c)) return false;
}
return true; // 같은 경우
}
}