You are given a text consisting of n lines. Each line contains some space-separated words, consisting of lowercase English letters.

We define a syllable as a string that contains exactly one vowel and any arbitrary number (possibly none) of consonants. In English alphabet following letters are considered to be vowels: 'a', 'e', 'i', 'o', 'u' and 'y'.

Each word of the text that contains at least one vowel can be divided into syllables. Each character should be a part of exactly one syllable. For example, the word "mamma" can be divided into syllables as "ma" and "mma", "mam" and "ma", and "mamm" and "a". Words that consist of only consonants should be ignored.

The verse patterns for the given text is a sequence of n integers p_1, p_2, ..., p_{n}. Text matches the given verse pattern if for each i from 1 to n one can divide words of the i-th line in syllables in such a way that the total number of syllables is equal to p_{i}.

You are given the text and the verse pattern. Check, if the given text matches the given verse pattern.


-----Input-----

The first line of the input contains a single integer n (1 ≤ n ≤ 100) — the number of lines in the text.

The second line contains integers p_1, ..., p_{n} (0 ≤ p_{i} ≤ 100) — the verse pattern.

Next n lines contain the text itself. Text consists of lowercase English letters and spaces. It's guaranteed that all lines are non-empty, each line starts and ends with a letter and words are separated by exactly one space. The length of each line doesn't exceed 100 characters.


-----Output-----

If the given text matches the given verse pattern, then print "YES" (without quotes) in the only line of the output. Otherwise, print "NO" (without quotes).


-----Examples-----
Input
3
2 2 3
intel
code
ch allenge

Output
YES

Input
4
1 2 3 1
a
bcdefghi
jklmnopqrstu
vwxyz

Output
NO

Input
4
13 11 15 15
to be or not to be that is the question
whether tis nobler in the mind to suffer
the slings and arrows of outrageous fortune
or to take arms against a sea of troubles

Output
YES



-----Note-----

In the first sample, one can split words into syllables in the following way: in-tel

co-de

ch al-len-ge



Since the word "ch" in the third line doesn't contain vowels, we can ignore it. As the result we get 2 syllabels in first two lines and 3 syllables in the third one.

Difficulty: EASY

Solutions:
from collections import Counter
input()
for p in map(int, input().split()):
	C = Counter(input())
	if sum((C[v] for v in 'aeiouy')) != p:
		print('NO')
		break
else:
	print('YES')


from collections import Counter
a = set('aeiouy')

def cnt(s):
	return sum((x[1] for x in filter(lambda y: y[0] in a, Counter(s).items())))
n = int(input())
b = [int(x) for x in input().split()]
c = [sum((cnt(s) for s in input().split())) for i in range(n)]
if b == c:
	print('YES')
else:
	print('NO')


n = int(input())
p = []
f = 0
k = input()
p = k.split(' ')
for j in range(0, n, 1):
	s = input()
	u = 0
	for c in s:
		if c == 'a' or c == 'e' or c == 'i' or (c == 'o') or (c == 'u') or (c == 'y'):
			u += 1
	if int(p[j]) != int(u):
		f = 1
if f == 1:
	print('NO')
else:
	print('YES')


vowels = set(('a', 'e', 'i', 'o', 'u', 'y'))
n = int(input())
p = [int(_) for _ in input().split()]
for i in range(n):
	s = input()
	cnt = sum((1 if c in vowels else 0 for c in s))
	if cnt != p[i]:
		print('NO')
		exit(0)
print('YES')


input()
a = list(map(int, input().split()))
dem = 0
for i in a:
	s = input()
	if i != sum((s.count(j) for j in 'aeiouy')):
		dem = 1
if dem == 1:
	print('NO')
else:
	print('YES')


syllabes = ['a', 'e', 'i', 'o', 'u', 'y']
answer = {True: 'YES', False: 'NO'}
number = int(input())
rvstring = input().split(' ')
rv = []
for x in rvstring:
	rv.append(int(x))
possible = True
for x in range(0, number):
	st = input()
	i = 0
	for y in syllabes:
		i = i + st.count(y)
	possible = possible and i == rv[x]
print(answer[possible])


import sys
input = sys.stdin.readline
t = int(input())
v = ['a', 'e', 'i', 'o', 'u', 'y']
a = list(map(int, input().split(' ')))
z = 'YES'
for i in range(t):
	s = input().strip().split(' ')
	count = 0
	total = 0
	for j in s:
		f = 0
		for k in j:
			if k in v:
				if f == 0:
					count += 1
					total += 1
					f = 1
				else:
					total += 1
	if a[i] == total:
		continue
	else:
		z = 'NO'
print(z)


import sys
import math

def glas(ch):
	return ch in 'aeiouy'

def kol(s):
	res = 0
	for ch in s:
		res += int(glas(ch))
	return res
n = int(sys.stdin.readline())
arr = (int(x) for x in sys.stdin.readline().split())
for elem in arr:
	s = sys.stdin.readline()
	res = kol(s)
	if res != elem:
		print('NO')
		exit()
print('YES')


import re

def main():
	try:
		while True:
			n = int(input())
			p = list(map(int, input().split()))
			result = 'YES'
			for x in p:
				if len(re.findall('[aeiouy]', input())) != x:
					result = 'NO'
			print(result)
	except EOFError:
		pass
main()


n = int(input())
a = map(int, input().split())
for w in a:
	s = input()
	if w != sum((s.count(c) for c in 'aeiouy')):
		print('NO')
		exit(0)
print('YES')


n = int(input())
sb = []
txt = []
sb = list(map(int, input().split()))
for i in range(n):
	txt.append(input())
aph = ['a', 'e', 'i', 'o', 'u', 'y']
ans = 1
for k in range(n):
	i = 0
	cnt = [0, 0]
	rs = 0
	while i < len(txt[k]):
		if txt[k][i] == ' ':
			rs += cnt[0]
			cnt = [0, 0]
		elif txt[k][i] in aph:
			cnt[0] += 1
		else:
			cnt[1] += 1
		i += 1
	rs += cnt[0]
	cnt = [0, 0]
	if sb[k] != rs:
		ans = 0
if ans == 1:
	print('YES')
else:
	print('NO')


n = int(input())
p = list(map(int, input().split()))
for i in range(n):
	s = input()
	t = 0
	for v in 'aeiouy':
		t += s.count(v)
	if t != p[i]:
		print('NO')
		break
else:
	print('YES')


def main():
	n = int(input())
	ps = [int(x) for x in input().split()]
	v = set('aeiouy')
	for p in ps:
		s = input()
		ss = sum((1 for x in s if x in v))
		if ss != p:
			print('NO')
			return
	print('YES')
main()


import sys
n = int(sys.stdin.readline())
tmpl = list(map(int, sys.stdin.readline().split()))
strs = sys.stdin.read().splitlines()
for s in range(0, n):
	for ch in strs[s]:
		if ch in 'aeiouy':
			tmpl[s] -= 1
	if tmpl[s] != 0:
		print('NO')
		exit()
print('YES')


from collections import deque as de
import math
import re
from collections import Counter as cnt
from functools import reduce
from typing import MutableMapping
from itertools import groupby as gb
from fractions import Fraction as fr
from bisect import bisect_left as bl, bisect_right as br

def factors(n):
	return set(reduce(list.__add__, ([i, n // i] for i in range(1, int(n ** 0.5) + 1) if n % i == 0)))

class My_stack:

	def __init__(self):
		self.data = []

	def my_push(self, x):
		return self.data.append(x)

	def my_pop(self):
		return self.data.pop()

	def my_peak(self):
		return self.data[-1]

	def my_contains(self, x):
		return self.data.count(x)

	def my_show_all(self):
		return self.data

	def isEmpty(self):
		return len(self.data) == 0
arrStack = My_stack()

def decimalToBinary(n):
	return bin(n).replace('0b', '')

def binarytodecimal(n):
	return int(n, 2)

def isPrime(n):
	if n <= 1:
		return False
	if n <= 3:
		return True
	if n % 2 == 0 or n % 3 == 0:
		return False
	i = 5
	while i * i <= n:
		if n % i == 0 or n % (i + 2) == 0:
			return False
		i = i + 6
	return True

def get_prime_factors(number):
	prime_factors = []
	while number % 2 == 0:
		prime_factors.append(2)
		number = number / 2
	for i in range(3, int(math.sqrt(number)) + 1, 2):
		while number % i == 0:
			prime_factors.append(int(i))
			number = number / i
	if number > 2:
		prime_factors.append(int(number))
	return prime_factors

def get_frequency(list):
	dic = {}
	for ele in list:
		if ele in dic:
			dic[ele] += 1
		else:
			dic[ele] = 1
	return dic

def Log2(x):
	return math.log10(x) / math.log10(2)

def getProduct(n):
	product = 1
	while n != 0:
		product = product * (n % 10)
		n = n // 10
	return product

def dupconscount(nums):
	element = []
	freque = []
	if not nums:
		return element
	running_count = 1
	for i in range(len(nums) - 1):
		if nums[i] == nums[i + 1]:
			running_count += 1
		else:
			freque.append(running_count)
			element.append(nums[i])
			running_count = 1
	freque.append(running_count)
	element.append(nums[i + 1])
	return (element, freque)

def isPowerOfTwo(n):
	return math.ceil(Log2(n)) == math.floor(Log2(n))

def ceildiv(x, y):
	return (x + y - 1) // y

def di():
	return map(int, input().split())

def ii():
	return int(input())

def li():
	return list(map(int, input().split()))

def si():
	return list(map(str, input()))
n = ii()
p = li()
ch = 1
for j in range(n):
	temp = si()
	vowels = 0
	if ch:
		for i in range(len(temp)):
			if temp[i] == 'a' or temp[i] == 'i' or temp[i] == 'o' or (temp[i] == 'e') or (temp[i] == 'u') or (temp[i] == 'y'):
				vowels += 1
		if vowels != p[j]:
			ch = 0
if ch:
	print('YES')
else:
	print('NO')


v = 'aeiouy'
n = int(input())
p = list(map(int, input().split()))
d = [sum(map(lambda x: x in v, input())) for i in range(n)]
if d == p:
	print('YES')
else:
	print('NO')


from collections import defaultdict
import sys, os, math
n = int(input())
p = list(map(int, input().split()))
for i in range(n):
	s = input()
	cnt = 0
	for ch in 'aeiouy':
		cnt += s.count(ch)
	if cnt != p[i]:
		print('NO')
		sys.exit(0)
print('YES')


n = int(input())
l = list(map(int, input().split()))
for i in range(n):
	s = input()
	s = s.replace('a', 'e').replace('i', 'e').replace('o', 'e').replace('u', 'e').replace('y', 'e').split('e')
	if len(s) - 1 != l[i]:
		print('NO')
		exit()
print('YES')


n = int(input())
p = list(map(int, input().split()))
for i in range(n):
	s = input()
	count = 0
	for j in range(len(s)):
		if s[j] == 'a' or s[j] == 'e' or s[j] == 'i' or (s[j] == 'o') or (s[j] == 'u') or (s[j] == 'y'):
			count += 1
	if count != p[i]:
		print('NO')
		exit(0)
print('YES')


__author__ = 'Think'
n = int(input())
p = [int(i) for i in input().split()]
broken = False
for i in range(n):
	line = input()
	total = 0
	for s in line:
		if s in ['a', 'e', 'i', 'u', 'o', 'y']:
			total += 1
	if total != p[i]:
		print('NO')
		broken = True
		break
if not broken:
	print('YES')


print(input() * 0 + 'YNEOS'[not all((p == sum(map(input().count, 'aeiouy')) for p in map(int, input().split())))::2])


n = int(input())
v = ['a', 'e', 'i', 'o', 'u', 'y']
l = [int(i) for i in input().split()]
for i in range(0, n):
	s = [j for j in input().split()]
	count = 0
	for j in s:
		for k in j:
			if k in v:
				count += 1
	if count != l[i]:
		print('NO')
		exit()
print('YES')


n = int(input())
l = list(map(lambda x: int(x), input().split()))
flag = True
for i in range(n):
	temp = input()
	if temp.count('a') + temp.count('e') + temp.count('i') + temp.count('o') + temp.count('u') + temp.count('y') != l[i]:
		flag = False
		break
if flag:
	print('YES')
else:
	print('NO')


from collections import Counter
N = int(input())
patterns = list(map(int, input().split()))
vowels = []
for n in range(N):
	c = Counter(input())
	vowel_num = sum((c[x] for x in 'aeiouy'))
	vowels.append(vowel_num)
if vowels == patterns:
	print('YES')
else:
	print('NO')


from collections import Counter
n = int(input())
a = list(map(int, input().split()))
b = True
for i in range(n):
	s = input()
	c = Counter(s)
	boin = c['a'] + c['e'] + c['i'] + c['o'] + c['u'] + c['y']
	if a[i] != boin:
		b = False
if b:
	print('YES')
else:
	print('NO')


n = int(input())
arr = list(map(int, input().split()))
for i in range(n):
	string = input()
	ans = 0
	for v in ['a', 'e', 'i', 'o', 'u', 'y']:
		ans += string.count(v)
	if arr[i] != ans:
		print('NO')
		exit(0)
print('YES')


n = int(input())
a = list(map(int, input().split()))
f = True
k = 'aeiouy'
for i in range(n):
	s = input()
	sum = 0
	for j in range(len(s)):
		if s[j] in k:
			sum += 1
	if sum != a[i]:
		f = False
		break
if f:
	print('YES')
else:
	print('NO')


from sys import stdin, stdout
cin = stdin.readline
cout = stdout.write
mp = lambda : list(map(int, cin().split()))
(n,) = mp()
p = mp()
f = 0
vowel = ['a', 'e', 'i', 'o', 'u', 'y']
for t in range(n):
	s = cin()[:-1]
	if not f:
		a = s.count('a')
		e = s.count('e')
		i = s.count('i')
		o = s.count('o')
		u = s.count('u')
		y = s.count('y')
		if a + e + i + o + u + y != p[t]:
			f = 1
if not f:
	cout('YES')
else:
	cout('NO')


import re
n = int(input())
ps = list(map(int, input().split(' ')))
for p in ps:
	l = input()
	if len(re.findall('[aeiouy]', l)) != p:
		print('NO')
		exit()
print('YES')


import collections
n = int(input())
p = input().split()
flag = True
for i in range(n):
	string = input()
	c = collections.Counter(string)
	t = 0
	for letter in 'aeiouy':
		t += c[letter]
	if t != int(p[i]):
		flag = False
		break
if flag:
	print('YES')
else:
	print('NO')


line_count = int(input())
expected_syllables_count = list(map(lambda s: int(s), input().split()))
valid_expectations = True
vowels = set('aeiouy')
for i in range(0, line_count):
	valid_expectations = valid_expectations and len(list(filter(lambda c: c in vowels, input()))) == expected_syllables_count[i]
solution = 'YES' if valid_expectations else 'NO'
print(solution)


n = int(input())
p = list(map(int, input().split()))
c = 'aeiouy'

def main():
	for i in range(n):
		s = input()
		count = 0
		for ch in s:
			if ch in c:
				count += 1
		if count != p[i]:
			print('NO')
			return
	print('YES')
	return
main()


def matched_pattern(counts, strings):
	for (count, string) in zip(counts, strings):
		if count != sum((1 for c in string if c in 'aeiouy')):
			return False
	return True
n = int(input())
counts = map(int, input().split())
strings = [input() for i in range(n)]
print('YES' if matched_pattern(counts, strings) else 'NO')


glasn = {'a', 'e', 'i', 'o', 'u', 'y'}

def isGlasn(c):
	return c in glasn
import sys
fin = sys.stdin
fout = sys.stdout
n = int(fin.readline())
need = list(map(int, fin.readline().split()))
for i in range(n):
	cur = fin.readline().strip()
	count = 0
	for s in cur:
		if isGlasn(s):
			count += 1
	if count != need[i]:
		fout.write('NO')
		sys.exit()
fout.write('YES')


input()
answer = 'YES'
vowels = set('aeiouy')
for p in map(int, input().split()):
	if p != sum((l in vowels for l in input())):
		answer = 'NO'
		break
print(answer)


def main():
	n = int(input())
	p = [int(s) for s in input().split()]
	vowels = {'a', 'e', 'i', 'o', 'u', 'y'}
	for i in range(n):
		l = input()
		numv = sum((1 for c in l if c in vowels))
		if numv != p[i]:
			print('NO')
			return
	print('YES')
main()


n = int(input())
p = list(map(int, input().split()))
a = set('auiyoe')
log = True
for i in range(n):
	s = input()
	cnt = 0
	for el in s:
		if el in a:
			cnt += 1
	if cnt != p[i]:
		log = False
if log:
	print('YES')
else:
	print('NO')


n = int(input())
ps = [int(a) for a in input().split()]

def count_vowels(str):
	count = 0
	for ch in str:
		if ch == 'a' or ch == 'e' or ch == 'i' or (ch == 'o') or (ch == 'u') or (ch == 'y'):
			count += 1
	return count
ans = 1
for i in range(n):
	line = input()
	count = count_vowels(line)
	if count != ps[i]:
		ans = 0
		break
if ans == 1:
	print('YES')
else:
	print('NO')


n = int(input())
ans = 'YES'
vowel = ['a', 'e', 'i', 'o', 'u', 'y']
array = [int(x) for x in input().split()]
for i in range(0, n):
	array[i] = int(array[i])
for i in range(0, n):
	string = input()
	c = 0
	for j in range(0, len(string)):
		if string[j] in vowel:
			c += 1
	if c != array[i]:
		ans = 'NO'
print(ans)


from sys import exit
n = int(input())
p = list(map(int, input().split()))
for (i, cur_p) in zip(range(n), p):
	s = input().strip()
	cnt = 0
	for c in s:
		if c in 'aeiouy':
			cnt += 1
	if cnt != cur_p:
		print('NO')
		exit(0)
print('YES')


n = int(input())
syl = tuple(map(int, input().split()))
vowels = 'aoiuye'
for i in range(n):
	k = 0
	for ch in input():
		if ch in vowels:
			k += 1
	if k != syl[i]:
		print('NO')
		break
else:
	print('YES')


vowels = ['a', 'e', 'i', 'o', 'u', 'y']
N = int(input())
P = list(map(int, input().split()))
ans = True
for n in range(N):
	s = input()
	vc = len(list((True for c in s if c in vowels)))
	if vc != P[n]:
		ans = False
print('YES' if ans else 'NO')


n = int(input())
a = [int(i) for i in input().split()]
k = 0
q = 0
for i in range(n):
	s = input()
	for j in s:
		if j == 'a' or j == 'e' or j == 'i' or (j == 'o') or (j == 'u') or (j == 'y'):
			q += 1
	if q != a[i]:
		print('NO')
		exit(0)
	q = 0
print('YES')


def kol(a):
	b = 0
	c = ['a', 'e', 'i', 'o', 'u', 'y']
	for i in range(len(a)):
		if a[i] in c:
			b += 1
	return b
n = int(input())
p = list(map(int, input().split()))
for i in range(n):
	a = input()
	if kol(a) != p[i]:
		print('NO')
		exit()
print('YES')


n = int(input())
syllables = [int(i) for i in input().split()]
check = 0
for Homu in range(n):
	phrase = input()
	a = phrase.count('a')
	e = phrase.count('e')
	i = phrase.count('i')
	o = phrase.count('o')
	u = phrase.count('u')
	y = phrase.count('y')
	if a + e + i + o + u + y != syllables[Homu]:
		check += 21
		break
if check == 0:
	print('YES')
else:
	print('NO')


n = int(input())
p = list(map(int, input().split()))
valid = True
for i in range(n):
	s = input()
	num = 0
	for c in s:
		if c == 'a' or c == 'e' or c == 'i' or (c == 'o') or (c == 'u') or (c == 'y'):
			num += 1
	if num != p[i]:
		valid = False
print('YES' if valid else 'NO')


vowels = ['a', 'e', 'i', 'o', 'u', 'y']
num_lines = int(input())
pattern = [int(n) for n in input().split(' ')]
lines = []
for i in range(num_lines):
	lines.append(input())

def has_n_syl(line, n):
	c = 0
	for l in line:
		if l in vowels:
			c += 1
	return c == n
result = True
for (i, line) in enumerate(lines):
	result = result and has_n_syl(line, pattern[i])
if result:
	print('YES')
else:
	print('NO')


def slog(q):
	e = 0
	for du in q:
		for ru in du:
			if ru in g:
				e += 1
	return e
n = int(input())
p = [int(x) for x in input().split()]
s = []
g = ['a', 'e', 'i', 'o', 'u', 'y']
u = True
for i in range(n):
	s.append(input().split())
for i in range(n):
	if slog(s[i]) != p[i]:
		u = False
if u == True:
	print('YES')
else:
	print('NO')


n = int(input())
p = list(map(int, input().split(' ')))
l = []
for i in range(n):
	ch = input()
	l.append(ch)
t = True
v = 'aeyuio'
i = 0
while i < n and t:
	s = 0
	for x in l[i]:
		if x in v:
			s = s + 1
	if s != p[i]:
		t = False
		break
	i = i + 1
if t:
	print('YES')
else:
	print('NO')


v = ['a', 'e', 'i', 'o', 'u', 'y']
n = int(input().strip())
a = list(map(int, input().strip().split()))
l = [0 for i in range(n)]
for i in range(n):
	for s in input().strip().split():
		l[i] += sum([s.count(x) for x in v])
if l == a:
	print('YES')
else:
	print('NO')


li = int(input())
nu = [int(i) for i in input().split()]
flag = 0
tu = 0
for i in range(li):
	ans = 0
	m = input().split()
	for word in m:
		for let in word:
			if let == 'a' or let == 'e' or let == 'i' or (let == 'o') or (let == 'u') or (let == 'y'):
				ans += 1
	if nu[tu] != ans:
		flag = 1
		print('NO')
		break
	tu += 1
if flag == 0:
	print('YES')


lines = int(input())
patterns = input().split()
textos = []
vocales = 'aeiouy'
for i in range(lines):
	textos.append(input())
for i in range(lines):
	contador = 0
	for l in textos[i]:
		if l in vocales:
			contador += 1
	if contador != int(patterns[i]):
		print('NO')
		exit()
print('YES')


q = int(input(''))
w = input('')
e = w.split()
u = 0
s = 0
for r in range(q):
	i = e[u]
	t = input('')
	y = t.count('a')
	y = y + t.count('e')
	y = y + t.count('i')
	y = y + t.count('y')
	y = y + t.count('u')
	y = y + t.count('o')
	i = int(i)
	if i == y:
		s = s + 1
	u = u + 1
if s == q:
	print('YES')
else:
	print('NO')


input()
a = list(map(int, input().split()))
print('YES' if all((sum((c in 'aeiouy' for c in input())) == d for d in a)) else 'NO')


def verse_pattern():
	no_lines = int(input())
	verses = [int(x) for x in input().strip().split(' ')]
	count = 0
	vowels = ['a', 'e', 'i', 'o', 'u', 'y']
	while count < no_lines:
		line = input()
		syllabes = sum((line.count(x) for x in vowels))
		if syllabes != verses[count]:
			return 'NO'
		count += 1
	return 'YES'
print(verse_pattern())


import functools as ftools
(n, tmpl) = (int(input()), tuple(map(int, input().split())))
print('YES' if ftools.reduce(lambda a, b: a and b, [sum(map(s.count, 'aeiouy')) == tmpl[i] for (i, s) in enumerate(map(lambda _: input(), range(n)))]) else 'NO')


import sys
import string
import re
input = lambda : sys.stdin.readline()
n = int(input())
A = list(map(int, input().split()))
flag = False
zemi = 0
for x in range(n):
	s = input()
	cnt = 0
	for i in range(len(s)):
		if s[i] == 'a' or s[i] == 'e' or s[i] == 'i' or (s[i] == 'o') or (s[i] == 'u') or (s[i] == 'y'):
			cnt += 1
	if cnt == A[x]:
		flag = True
	else:
		flag = False
		zemi = 1
if zemi == 0 and flag == True:
	print('YES')
elif zemi == 1:
	print('NO')


n = int(input())
print('YES' if list(map(int, input().split())) == [len(list(filter(lambda c: c in 'aeiouy', s))) for s in [input() for _ in range(n)]] else 'NO')


import re
n = int(input())
p = [int(x) for x in input().split()]
res = []
for i in range(n):
	res.append(len(re.findall('[aeiouy]', input())))
if p == res:
	print('YES')
else:
	print('NO')


n = int(input())
V = {'a', 'e', 'i', 'o', 'u', 'y'}
p = input().split()
p = [int(i) for i in p]
c = [0 for i in range(n)]
for i in range(n):
	A = list(input())
	for v in V:
		c[i] += A.count(v)
assert len(c) == n
flag = 1
for i in range(n):
	if c[i] != p[i]:
		flag = 0
		break
if flag:
	print('YES')
else:
	print('NO')


__author__ = 'Alexander'
import sys
n = int(sys.stdin.readline().strip())
p = [int(x) for x in sys.stdin.readline().split()]
text = [''] * n
flag = True
w = ('a', 'e', 'i', 'o', 'u', 'y')
for i in range(n):
	text[i] = sys.stdin.readline().strip()
for i in range(n):
	count = 0
	for j in range(len(text[i])):
		if text[i][j] in w:
			count += 1
	if count != p[i]:
		sys.stdout.write('NO')
		flag = False
		break
if flag:
	sys.stdout.write('YES')


n = int(input())
p = list(map(int, input().split()))
ans = True
for j in range(0, n):
	i = input()
	tmp = i.count('a') + i.count('e') + i.count('i') + i.count('o') + i.count('u') + i.count('y')
	if tmp != p[j]:
		ans = False
if ans == False:
	print('NO')
else:
	print('YES')


I = input
I()
y = 1
for x in map(int, I().split()):
	t = I()
	y = y and x == sum((t.count(i) for i in 'aeiouy'))
print(['NO', 'YES'][y])


import sys
n = int(input())
L = list(map(int, input().split()))
H = ['a', 'e', 'i', 'o', 'u', 'y']
a = 'YES'
for i in range(n):
	ss = input().split()
	s = ''
	ans = 0
	for item in ss:
		for x in item:
			if x in H:
				ans += 1
	if ans != L[i]:
		a = 'NO'
print(a)


n = int(input())
patterns = [int(x) for x in input().split()]
voels = {'a', 'e', 'i', 'o', 'u', 'y'}
res = 'YES'
for i in range(n):
	syllables = 0
	line = input()
	for letter in line:
		if letter in voels:
			syllables += 1
	if syllables != patterns[i]:
		res = 'NO'
		break
print(res)


n = int(input())
p = [int(i) for i in input().split()]
x = 0
for i in range(n):
	s = input()
	k = s.count('a') + s.count('e') + s.count('i') + s.count('o') + s.count('u') + s.count('y')
	if k != p[i]:
		x = 1
		break
if x:
	print('NO')
else:
	print('YES')


from sys import *
n = int(input())
p = [int(z) for z in input().split()]
glas = set(['a', 'e', 'i', 'o', 'u', 'y'])
for i in range(n):
	s = input()
	nogl = 0
	for j in s:
		if j in glas:
			nogl += 1
	if nogl != p[i]:
		print('NO')
		exit(0)
print('YES')


__author__ = 'Azad'
n = int(input())
l = [int(x) for x in input().split()]
u = []
vow = ['a', 'e', 'i', 'o', 'u', 'y']
for x in range(n):
	p = input().split()
	x = sum([word.count(x) for word in p for x in vow])
	u.append(x)
if all([a == b for (a, b) in zip(u, l)]):
	print('YES')
else:
	print('NO')


input()
for n in map(int, input().split()):
	for z in input():
		n -= z in 'aeiouy'
	if n:
		print('NO')
		break
else:
	print('YES')


v = ['a', 'e', 'i', 'o', 'u', 'y']
n = int(input())
l = list(map(int, input().split()))
f = 0
for u in range(n):
	s = input()
	c = 0
	for i in s:
		if i in v:
			c += 1
	if c != l[u]:
		f = 1
if f == 1:
	print('NO')
else:
	print('YES')


from sys import exit

def num_vow(s):
	vow = ['a', 'e', 'o', 'i', 'u', 'y']
	r = 0
	for i in vow:
		r += s.count(i)
	return r
n = int(input())
p = list(map(int, input().split()))
f = True
for i in range(n):
	s = input()
	if num_vow(s) != p[i] and f:
		print('NO')
		f = False
if f:
	print('YES')


n = int(input())
l = list(map(int, input().split()))
ans = []
gl = ['a', 'e', 'i', 'o', 'u', 'y']
for _ in range(n):
	s = list(input())
	k = 0
	for x in s:
		if x in gl:
			k += 1
	ans += [k]
if ans == l:
	print('YES')
else:
	print('NO')


n = int(input())
p = list(map(int, input().split()))
f = 0
for i in range(n):
	s = input()
	if s.count('a') + s.count('e') + s.count('i') + s.count('o') + s.count('u') + s.count('y') == p[i]:
		f += 1
if f == n:
	print('YES')
else:
	print('NO')


n = int(input())
p = input().split()
r = 'YES'
for i in range(n):
	s = input()
	if r != 'NO' and s.count('a') + s.count('e') + s.count('i') + s.count('o') + s.count('u') + s.count('y') != int(p[i]):
		r = 'NO'
print(r)


n = int(input())
p = list(map(int, input().split(' ')))
vowels = ['a', 'e', 'i', 'o', 'u', 'y']

def containsAny(str, arr):
	return 1 in [c in str for c in arr]
good = True
for i in range(n):
	line = str(input())
	v = 0
	words = line.split(' ')
	final = []
	for word in words:
		if containsAny(word, vowels):
			final.append(word)
	l = ''
	l.join(final)
	for char in line:
		if char in vowels:
			v += 1
	if v != p[i]:
		good = False
print('YES' if good else 'NO')


import logging
import copy
import sys
import math
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)

def solve(patterns, lines):
	for (i, s) in enumerate(lines):
		vowels = []
		for (idx, ch) in enumerate(s):
			if ch in ['a', 'e', 'i', 'o', 'u', 'y']:
				vowels.append(idx)
		if len(vowels) != patterns[i]:
			return 'NO'
	return 'YES'

def main():
	nolines = int(input())
	pattern = input().split()
	pattern = list(map(int, pattern))
	lines = []
	for i in range(nolines):
		lines.append(input())
	print(solve(pattern, lines))

def log(*message):
	logging.debug(message)
main()


n = int(input())
no = list(map(int, input().split()))
num = [0 for i in range(n)]
for i in range(n):
	x = input()
	for a in x:
		if a == 'a' or a == 'e' or a == 'i' or (a == 'o') or (a == 'u') or (a == 'y'):
			num[i] += 1
if no == num:
	print('YES')
else:
	print('NO')


n = int(input().strip())
p = [int(a) for a in input().strip().split()]
v = set('aeiouy')
for i in range(n):
	s = input().strip()
	count = 0
	for c in s:
		if c in v:
			count += 1
	if count != p[i]:
		print('NO')
		break
else:
	print('YES')


def func():
	n = int(input())
	nums = list(map(int, input().strip().split()))
	for i in range(n):
		s = input()
		count = 0
		for c in s:
			if c in ['a', 'e', 'i', 'o', 'u', 'y']:
				count += 1
		if count != nums[i]:
			return False
	return True
if func():
	print('YES')
else:
	print('NO')


def vowels(line):
	syl = 0
	for i in line:
		if i == 'a':
			syl += 1
		elif i == 'e':
			syl += 1
		elif i == 'i':
			syl += 1
		elif i == 'o':
			syl += 1
		elif i == 'u':
			syl += 1
		elif i == 'y':
			syl += 1
	return syl
n = int(input())
p = list(map(int, input().split()))
right = True
for i in range(n):
	l = input()
	if vowels(l) != p[i]:
		right = False
if right:
	print('YES')
else:
	print('NO')


n = int(input())
ln = [None] * n
ls = [None] * n
cs = [None] * n
match = 0
ln = list(map(int, input().split()))
for x in range(0, n):
	ls[x] = input()
for y in range(0, n):
	count = 0
	for r in range(0, len(ls[y])):
		if ls[y][r] == 'a' or ls[y][r] == 'e' or ls[y][r] == 'i' or (ls[y][r] == 'o') or (ls[y][r] == 'u') or (ls[y][r] == 'y'):
			count += 1
	cs[y] = count
for t in range(0, n):
	if ln[t] != cs[t]:
		match += 1
if match == 0:
	print('YES')
else:
	print('NO')


import re
n = int(input())
numbers_of_vowels = list(map(int, input().split()))
poem = [input() for _ in range(n)]
isRight = True
for i in range(n):
	res = re.findall('[aeiouy]', poem[i])
	if len(res) != numbers_of_vowels[i]:
		isRight = False
		break
if isRight:
	print('YES')
else:
	print('NO')


n = int(input())
t = list(map(int, input().split()))
x = 'aeiouy'
r = 0
for j in range(n):
	f = input()
	p = 0
	for i in f:
		if i in x:
			p += 1
	if p == t[j]:
		r += 1
if r == n:
	print('YES')
else:
	print('NO')


N = int(input())
X = list(map(int, input().split()))
for i in range(N):
	Temp = input()
	Count = len([i for i in Temp if i in 'aeiouy'])
	if Count != X[i]:
		print('NO')
		exit()
print('YES')


from collections import Counter
n = int(input())
p = list(input().split())
t = [input() for i in range(n)]
vowels = ['a', 'e', 'i', 'o', 'u', 'y']

def shakespeare(t, p):
	for (phrase, verse) in zip(t, p):
		c = len([l for l in Counter(phrase).elements() if l in vowels])
		if c != int(verse):
			return 'NO'
	return 'YES'
print(shakespeare(t, p))


import re
_ = int(input())
a = list(map(int, input().split()))
print('YES' if len([n for n in range(_) if len([i for i in input() if re.search('[yeuoai]', i)]) == a[n]]) == len(a) else 'NO')


vowel = ['a', 'e', 'i', 'o', 'u', 'y']
n = int(input())
a = [int(i) for i in input().split()]
for i in range(n):
	st = input().split()
	cnt = 0
	for word in st:
		for j in word:
			if j in vowel:
				cnt += 1
	if cnt != a[i]:
		print('NO')
		exit(0)
print('YES')


n = int(input())
p = [int(x) for x in input().split(' ')]
match = True
sa = {'a', 'e', 'i', 'o', 'u', 'y'}
for i in range(n):
	s = input()
	spaces = 0
	syllabi = 0
	for j in range(len(s)):
		if s[j] in sa:
			syllabi += 1
	if p[i] == syllabi:
		pass
	else:
		match = False
	if match == False:
		print('NO')
		break
if match == True:
	print('YES')


import re

def solve():
	N = int(input())
	P = list(map(int, input().split()))
	for i in range(N):
		ws = input().split()
		xs = 0
		for w in ws:
			ys = re.split('[aeiouy]', w)
			xs += len(ys) - 1
		if xs != P[i]:
			print('NO')
			return
	print('YES')
solve()


n = int(input())
verse = list(map(int, input().split()))
text = [None] * n
for i in range(n):
	text[i] = input()
vowels = 'aeiouy'
for i in range(n):
	count = 0
	for j in text[i]:
		if j in vowels:
			count += 1
	if count != verse[i]:
		print('NO')
		exit()
print('YES')


n = int(input())
p = [int(i) for i in input().split()]
letters = ['a', 'i', 'o', 'u', 'e', 'y']
for i in range(n):
	row = input()
	for c in row:
		if c in letters:
			p[i] -= 1
	if not p[i] == 0:
		print('NO')
		exit()
print('YES')


n = int(input())
s = [int(i) for i in input().split()]
u = ['a', 'o', 'i', 'u', 'e', 'y']
y = 1
for i in range(n):
	count = 0
	t = input()
	for j in t:
		if j in u:
			count += 1
	if count != s[i]:
		y = 0
if not y:
	print('NO')
else:
	print('YES')


n = int(input())
p = input().split(' ')
l = ['a', 'e', 'i', 'o', 'u', 'y']
f = 1
for i in range(n):
	s = input().split(' ')
	qwe = int(p[i])
	cnt = 0
	words = 0
	tmp = 0
	for j in s:
		tmp = 0
		for k in j:
			if k in l:
				cnt = cnt + 1
	if cnt != qwe:
		f = 0
if f:
	print('YES')
else:
	print('NO')


n = int(input())
x = list(map(int, input().split()))
l = []
for i in range(n):
	s = input()
	ans = s.count('a') + s.count('e') + s.count('i') + s.count('o') + s.count('u') + s.count('y')
	l.append(ans)
if l == x:
	print('YES')
else:
	print('NO')


n = int(input())
ck = list(map(int, input().split(' ')))
works = True
for i in range(n):
	a = input().split(' ')
	cnt = 0
	for j in range(len(a)):
		for k in range(len(a[j])):
			if a[j][k] == 'a' or a[j][k] == 'e' or a[j][k] == 'i' or (a[j][k] == 'o') or (a[j][k] == 'u') or (a[j][k] == 'y'):
				cnt += 1
	if cnt != ck[i]:
		works = False
		break
if works:
	print('YES')
else:
	print('NO')


n = int(input())
a = list(map(int, input().split()))
b = {'a', 'e', 'o', 'u', 'i', 'y'}
fl = 1
for i in range(n):
	s = input()
	k = 0
	for j in s:
		if j in b:
			k += 1
	if k != a[i]:
		fl = 0
		break
if fl:
	print('YES')
else:
	print('NO')


vow = set(['a', 'e', 'i', 'o', 'u', 'y'])

def f(x):
	q = 0
	for y in x:
		q += int(y in vow)
	return q
n = int(input())
p = [int(x) for x in input().split(' ')]
fl = 1
for i in range(n):
	s = [f(x) for x in input().split(' ')]
	if sum(s) != p[i]:
		fl = 0
print('YES' if fl else 'NO')


n = int(input())
p = list(map(int, input().split()))
for i in range(n):
	s = input()
	res = 0
	res += s.count('a')
	res += s.count('e')
	res += s.count('i')
	res += s.count('o')
	res += s.count('u')
	res += s.count('y')
	if res != p[i]:
		print('NO')
		exit()
print('YES')


import os
import sys
import math
import heapq
from decimal import *
from io import BytesIO, IOBase
from collections import defaultdict, deque

def r():
	return int(input())

def rm():
	return map(int, input().split())

def rl():
	return list(map(int, input().split()))
n = r()
a = rl()
b = []
for i in range(n):
	b.append(input())
ans = True
for (l, i) in enumerate(b):
	cnt = 0
	for j in list(i.split()):
		for k in range(len(j)):
			if j[k] in ['a', 'e', 'i', 'o', 'u', 'y']:
				cnt += 1
	if cnt == a[l]:
		continue
	else:
		ans = False
		break
print('YES' if ans else 'NO')


v = {'a', 'e', 'i', 'o', 'u', 'y'}
n = int(input())
w = list(map(int, input().split()))
for i in range(n):
	t = 0
	for c in input():
		t += c.lower() in v
	if t != w[i]:
		print('NO')
		quit()
print('YES')


n = int(input())
test = 'aoeiuy'
a = list(map(int, input().split()))
flag = 1
for i in range(n):
	s = input()
	res = 0
	for j in s:
		if j in test:
			res += 1
	if a[i] != res:
		flag = 0
		break
print('YES') if flag else print('NO')


length = int(input())
syllables = list(map(int, input().split()))
status = True
eng_vowels = {'a', 'e', 'i', 'o', 'u', 'y'}

def count_vowels(line):
	return len([x for x in line if x in eng_vowels])
for i in range(length):
	line = input()
	vowels = count_vowels(line)
	if vowels == syllables[i]:
		continue
	elif status:
		status = False
	else:
		pass
if status:
	print('YES')
else:
	print('NO')


n = int(input())
a = list(map(int, input().split()))
for i in range(n):
	s = input()
	t = 0
	for elem in s:
		if elem in 'aeiouy':
			t += 1
	if t != a[i]:
		print('NO')
		return
print('YES')


n = int(input())
l = list(map(int, input().split()))
s1 = set('aeiouy')
for i in range(n):
	s = input()
	ans = 0
	for p in s:
		if p in s1:
			ans += 1
	if ans != l[i]:
		print('NO')
		exit()
print('YES')


n = int(input())
p = list(map(int, input().split()))
good = True
for i in range(n):
	s = input()
	q = 0
	for l in s:
		if l in 'aeiouy':
			q += 1
	if q != p[i]:
		good = False
print('YES' if good else 'NO')


n = int(input())
p = list(map(int, input().split(' ')))
v = ['a', 'e', 'i', 'o', 'u', 'y']
j = 0
b = False
for i in range(n):
	ch = input()
	s = 0
	for x in ch:
		if x in v:
			s += 1
	if s != p[j]:
		print('NO')
		b = True
		break
	j += 1
if not b:
	print('YES')


n = int(input())
p = list(map(int, input().split()))
arr = []
for i in range(n):
	s = input()
	c = 0
	for l in s:
		if l == 'a' or l == 'e' or l == 'i' or (l == 'o') or (l == 'u') or (l == 'y'):
			c += 1
	arr.append(c)
if arr == p:
	print('YES')
else:
	print('NO')


n = int(input())
p = list(map(int, input().split()))
ans = 'YES'
for i in range(n):
	s = str(input())
	x = sum([c in 'aeiouy' for c in s])
	if x != p[i]:
		ans = 'NO'
print(ans)


import sys
import os
from io import BytesIO, IOBase
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
mod = 10 ** 9 + 7

def lcm(x, y):
	return x * y / gcd(x, y)

def fact(x, mod=mod):
	ans = 1
	for i in range(1, x + 1):
		ans = ans * i % mod
	return ans

def arr2D(n, m, default=0):
	return [[default for j in range(m)] for i in range(n)]

def arr3D(n, m, r, default=0):
	return [[[default for k in range(r)] for j in range(m)] for i in range(n)]

def sortDictV(x):
	return {k: v for (k, v) in sorted(x.items(), key=lambda item: item[1])}

class DSU:

	def __init__(self, length):
		self.length = length
		self.parent = [-1] * self.length

	def getParent(self, node, start):
		if node >= self.length:
			return False
		if self.parent[node] < 0:
			if start != node:
				self.parent[start] = node
			return node
		return self.getParent(self.parent[node], start)

	def union(self, node1, node2):
		parent1 = self.getParent(node1, node1)
		parent2 = self.getParent(node2, node2)
		if parent1 == parent2:
			return False
		elif self.parent[parent1] <= self.parent[parent2]:
			self.parent[parent1] += self.parent[parent2]
			self.parent[parent2] = parent1
		else:
			self.parent[parent2] += self.parent[parent1]
			self.parent[parent1] = parent2
		return True

	def getCount(self, node):
		return -self.parent[self.getParent(node, node)]

def solve(n, verse, lst):
	vowels = 'aeiuoy'
	vowelCount = []
	for i in lst:
		count = 0
		for j in i:
			if j in vowels:
				count += 1
		vowelCount.append(count)
	for i in range(n):
		if verse[i] != vowelCount[i]:
			return 'NO'
	return 'YES'
n = int(input())
verse = list(map(int, input().split()))
lst = []
for i in range(n):
	lst.append(input())
print(solve(n, verse, lst))


n = int(input())
p = list(map(int, input().split()))
c = []
a = []
d = 0
letters = ('a', 'e', 'i', 'o', 'u', 'y')
for x in range(n):
	a.append(input())
for x in range(n):
	for y in range(len(a[x])):
		if a[x][y] in letters:
			d += 1
	c.append(d)
	d = 0
if c == p:
	print('YES')
else:
	print('NO')


linesNum = int(input())
correct = input()
correct = correct.split()
lines = []
test = []
result = 0
for i in range(linesNum):
	correct[i] = int(correct[i])
	lines.append(input())
	test.append(0)
	for j in lines[i]:
		if j in 'aeiouy':
			test[i] += 1
for i in range(linesNum):
	if correct[i] == test[i]:
		result += 1
if result == linesNum:
	print('YES')
else:
	print('NO')


n = int(input())
for p in map(int, input().split()):
	line = input()
	if p != sum(map(lambda c: line.count(c), 'aeiouy')):
		print('NO')
		break
else:
	print('YES')


import sys
import string
from collections import Counter, defaultdict
from math import fsum, sqrt, gcd, ceil, factorial
from operator import *
from itertools import accumulate
inf = float('inf')
flush = lambda : sys.stdout.flush
comb = lambda x, y: factorial(x) // factorial(y) // factorial(x - y)
ip = lambda : input()
ii = lambda : int(input())
r = lambda : map(int, input().split())
rr = lambda : list(r())
n = ii()
arr = rr()
brr = [ip() for _ in range(n)]
for (i, j) in zip(arr, brr):
	c = 0
	for k in j.split():
		for v in 'aeiouy':
			c += k.count(v)
	if i != c:
		print('NO')
		exit()
print('YES')


def count_vowels(s):
	d = set(['a', 'i', 'e', 'o', 'u', 'y'])
	count = 0
	for i in s:
		if i in d:
			count += 1
	return count
n = int(input().strip())
arr = [int(x) for x in input().strip().split(' ')]
possible = True
for x in range(n):
	if count_vowels(input().strip()) != arr[x]:
		possible = False
		break
print('YES' if possible else 'NO')


import sys
input()
a = list(map(int, input().split()))
ans = all((sum((s.count(c) for c in 'aeiouy')) == a.pop(0) for s in sys.stdin))
print('YES' if ans else 'NO')


TN = 1

def solution():
	n = int(input())
	p = list(map(int, input().split()))
	ans = 'YES'
	for i in range(n):
		s = list(input())
		cnt = s.count('a') + s.count('e') + s.count('i') + s.count('o') + s.count('u') + s.count('y')
		if cnt < p[i] or cnt > p[i]:
			ans = 'NO'
	print(ans)
while TN != 0:
	solution()
	TN -= 1


count = int(input())
pattern = [int(x) for x in input().split(' ')]
satisfied = True
for i in range(count):
	if pattern[i] != len([x for x in input() if x in 'aeiouy']):
		satisfied = False
		break
print('YES' if satisfied else 'NO')


n = int(input())
p = list(map(int, input().split()))
for i in range(n):
	s = input()
	count = 0
	for c in s:
		if c in 'aeiouy':
			count += 1
	if count != p[i]:
		print('NO')
		exit()
print('YES')


import sys
glas = dict.fromkeys(['a', 'e', 'i', 'o', 'u', 'y'], True)
n = int(sys.stdin.readline())
p = list(map(int, sys.stdin.readline().split()))
ans = 'YES'
for i in range(n):
	count = 0
	for l in sys.stdin.readline():
		if glas.get(l):
			count += 1
	if p[i] != count:
		ans = 'NO'
		break
print(ans)


def ct(word):
	ctt = 0
	for i in word:
		if i in 'aeiouy':
			ctt += 1
	return ctt
x = int(input())
l = list(map(int, input().split(' ')))
for i in range(x):
	drunk = list(map(str, input().split(' ')))
	tot = 0
	for j in drunk:
		tot += ct(j)
	if tot != l[i]:
		print('NO')
		quit()
print('YES')


vowels = 'aeiouy'
n = int(input())
p = [int(x) for x in input().split()]
for i in range(n):
	s = input()
	vowelsCnt = 0
	for c in s:
		if c in vowels:
			vowelsCnt += 1
	if vowelsCnt != p[i]:
		print('NO')
		break
else:
	print('YES')


import re
ans = 'YES'
regex = re.compile('([aeiouy][^aeiouy]*)|([^aeiouy]*[aeiouy ])')
n = int(input())
p = list(map(int, input().split(' ')))
for i in range(n):
	temp = input()
	count = 0
	for m in regex.finditer(temp):
		sp = m.span()
		if re.search('[aeiouy]', temp[sp[0]:sp[1]]):
			count += 1
	if count != p[i]:
		ans = 'NO'
		break
print(ans)


n = int(input())
l = list(map(int, input().split()))
vw = ['a', 'e', 'i', 'o', 'u', 'y']
for i in range(n):
	s = str(input())
	p = 0
	for j in range(len(s)):
		if s[j] in vw:
			p += 1
	if p != l[i]:
		print('NO')
		exit()
print('YES')


n = int(input())
pattern = list(map(int, input().split()))
data = []
for i in range(n):
	data.append(input())
vowels = ['a', 'e', 'i', 'o', 'u', 'y']
trigger = True
for i in range(n):
	count = 0
	for ch in data[i]:
		if ch in vowels:
			count += 1
	if count != pattern[i]:
		trigger = False
		break
if trigger:
	print('YES')
else:
	print('NO')


n = int(input())
p = list(map(int, input().split()))
glasn = 'aeiouy'
cnt = 0
for i in range(n):
	cnt = 0
	string = input()
	for j in string:
		if j in glasn:
			cnt += 1
	if p[i] != cnt:
		print('NO')
		break
else:
	print('YES')


a = int(input())
z = list(map(int, input().split()))
for i in range(a):
	k = input()
	if sum((k.count(x) for x in 'aeiouy')) != z[i]:
		exit(print('NO'))
print('YES')


n = int(input())
s = list(map(int, input().split()))
v = 'aouiey'
res = 'YES'
for i in range(n):
	t = input()
	cnt = 0
	for j in t:
		if j in v:
			cnt += 1
	if cnt != s[i]:
		res = 'NO'
print(res)


def is_vowel(c):
	vowels = 'aeiouy'
	for vowel in vowels:
		if c == vowel:
			return True
	return False
n = int(input())
p = list(map(int, input().split()))
strings = [input() for _ in range(n)]
res = [0] * n
for i in range(n):
	for c in strings[i]:
		if is_vowel(c):
			res[i] += 1
yes = True
for i in range(n):
	if res[i] != p[i]:
		yes = False
		break
print('YES' if yes else 'NO')


cons = {'a', 'e', 'i', 'o', 'u', 'y'}

def cnt(s):
	res = 0
	for c in s:
		if c in cons:
			res += 1
	return res
n = int(input().strip())
ps = list(map(int, input().strip().split(' ')))
ok = True
for i in range(n):
	word = input().strip()
	if cnt(word) != ps[i]:
		ok = False
print('YES' if ok else 'NO')


from collections import Counter
letters = 'aeiouy'

def getNum(s):
	result = 0
	cc = Counter(s)
	for letter in letters:
		result += cc[letter]
	return result
n = int(input())
p = list(map(int, input().split()))
result = True
for i in range(n):
	line = input()
	result = result and getNum(line.lower()) == p[i]
print({True: 'YES', False: 'NO'}[result])


n = int(input())
p = list(map(int, input().split()))
tr = True
for i in range(n):
	ans = 0
	for j in input():
		if j in {'u', 'y', 'e', 'a', 'o', 'i'}:
			ans += 1
	if ans != p[i]:
		print('NO')
		exit()
print('YES')


n = int(input())
patterns = list(map(int, input().split()))
texts = []
for i in range(n):
	texts.append(input().split())
test = True
for i in range(n):
	pattern = patterns[i]
	text = texts[i]
	voyels = 0
	for ch in text:
		voyels += ch.count('a') + ch.count('e') + ch.count('i') + ch.count('o') + ch.count('u') + ch.count('y')
	if voyels != pattern:
		test = False
		break
if test:
	print('YES')
else:
	print('NO')


n = int(input())
p = list(map(int, input().split(' ')))
can = True
vowels = {'a', 'e', 'y', 'i', 'o', 'u'}
for i in range(n):
	s = input()
	vow = 0
	for ch in s:
		if ch in vowels:
			vow += 1
	if vow != p[i]:
		can = False
if can:
	print('YES')
else:
	print('NO')


n = int(input())
lst = list(map(int, input().split()))
t = True
for i in range(0, n):
	c = 0
	elem = input()
	for s in elem:
		if s == 'a' or s == 'e' or s == 'i' or (s == 'o') or (s == 'u') or (s == 'y'):
			c += 1
	if c != lst[i]:
		t = False
if t == True:
	print('YES')
else:
	print('NO')


def MAIN():
	N = int(input())
	v2 = [int(i) for i in input().split()]
	v3 = []
	for i in range(len(v2)):
		v3.append(0)
	v = []
	for i in range(26):
		v.append(0)
	(v[0], v[4], v[8], v[ord('o') - ord('a')], v[ord('u') - ord('a')], v[ord('y') - ord('a')]) = (1, 1, 1, 1, 1, 1)
	for i in range(N):
		d = input().split()
		for words in d:
			for character in words:
				if v[ord(character) - ord('a')]:
					v3[i] = v3[i] + 1
	for i in range(N):
		if v3[i] != v2[i]:
			print('NO')
			return 0
	print('YES')
MAIN()


n = int(input())
a = [int(x) for x in input().split()]
for j in range(n):
	s = input()
	v = 0
	for i in range(len(s)):
		if s[i] == 'a' or s[i] == 'e' or s[i] == 'i' or (s[i] == 'o') or (s[i] == 'u') or (s[i] == 'y'):
			v += 1
	if v != a[j]:
		print('NO')
		exit(0)
print('YES')


def main():
	t = str.maketrans('aeiouy', '******')
	input()
	for p in map(int, input().split()):
		if p != input().translate(t).count('*'):
			print('NO')
			return
	print('YES')
main()


n = int(input())
lst = list(map(int, input().split()))
d = {'a': 0, 'e': 0, 'i': 0, 'o': 0, 'u': 0, 'y': 0}
result = 'YES'
for i in range(n):
	res = 0
	for (j, x) in enumerate(input()):
		if d.get(x) != None:
			res += 1
	if res != lst[i]:
		result = 'NO'
		break
print(result)


def decompose(word):
	l = len(word)
	res = 0
	for i in range(l):
		if 'aeiouy'.find(word[i]) != -1:
			res += 1
	return res
n = int(input())
a = list(map(int, input().split()))
for i in range(n):
	text = list(map(str, input().split()))
	cnt = 0
	for word in text:
		cnt += decompose(word)
	if cnt != a[i]:
		print('NO')
		exit(0)
print('YES')


from sys import stdin
n = int(input())
p = list(map(int, input().split()))
t = ['' for x in range(n)]
for i in range(n):
	t[i] = stdin.readline().rstrip()
k = 'YES'
for (i, s) in enumerate(t):
	if len(list(filter(lambda x: x == 'a' or x == 'e' or x == 'i' or (x == 'o') or (x == 'u') or (x == 'y'), s))) != p[i]:
		k = 'NO'
		break
print(k)


import re
n = int(input())
p = list(map(int, input().split()))
tt = '[aeiouy]'
res = []
while n > 0:
	l = input()
	c = 0
	for w in l.split():
		slogs = re.findall(tt, w)
		c += len(slogs)
	res += [c]
	n -= 1
print('YES' if res == p else 'NO')


(n, p) = (int(input()), list(map(int, input().split())))
for i in range(n):
	l = input()
	if sum((l.count(v) for v in 'aeiouy')) != p[i]:
		print('NO')
		exit()
print('YES')


vowels = ['a', 'e', 'i', 'o', 'u', 'y']
n = int(input())
string = input()
numbers = list(map(int, string.split()))
results = 'YES'
for x in range(n):
	string = input()
	if results == 'YES':
		words = string.split()
		a = 0
		for y in words:
			for z in vowels:
				a += y.count(z)
		if a != numbers[x]:
			results = 'NO'
print(results)


n = int(input())
m = list(map(int, input().split()))
s = []
p = True
for i in range(n):
	s.append(input())
	if p:
		k = 0
		for j in s[i]:
			if j in 'aeoyui':
				k += 1
		if k != m[i]:
			p = False
			break
if p:
	print('YES')
else:
	print('NO')


def read_string():
	return input()

def read_strings(return_type=iter, split=None, skip=0):
	return return_type(input().split(split)[skip:])

def read_lines(height, return_type=iter):
	return return_type((read_string() for i in range(height)))

def read_number():
	return int(input())

def read_numbers(return_type=iter, skip=0):
	return return_type((int(i) for i in input().split()[skip:]))

def read_values(*types, array=None):
	line = input().split()
	result = []
	for (return_type, i) in zip(types, range(len(types))):
		result.append(return_type(line[i]))
	if array != None:
		(array_type, array_contained) = array
		result.append(array_type((array_contained(i) for i in line[len(types):])))
	return result

def read_array(item_type=int, return_type=iter, skip=0):
	return return_type((item_type(i) for i in input().split()[skip:]))

def read_martix(height, **args):
	return_type = args['return_type'] if 'return_type' in args else iter
	return_type_inner = args['return_type_inner'] if 'return_type_inner' in args else return_type
	return_type_outer = args['return_type_outer'] if 'return_type_outer' in args else return_type
	item_type = args['item_type'] if 'item_type' in args else int
	return return_type_outer((read_array(item_type=item_type, return_type=return_type_inner) for i in range(height)))

def read_martix_linear(width, skip=0, item_type=int, skiped=None):
	num = read_array(item_type=item_type, skip=skip)
	height = len(num) / width
	return [num[i * width:(i + 1) * width] for i in range(height)]

def nr_vowel(s):
	ans = 0
	for c in s:
		if c == 'a' or c == 'e' or c == 'i' or (c == 'o') or (c == 'u') or (c == 'y'):
			ans += 1
	return ans

def main():
	n = read_number()
	p = read_numbers(list)
	for i in range(n):
		s = read_string()
		if nr_vowel(s) != p[i]:
			print('NO')
			return
	print('YES')
main()


n = int(input())
lst = list(map(int, input().split(' ')))
ok = True
for _ in range(n):
	st = input()
	p_ = lst[_]
	a = st.count('a')
	a += st.count('e')
	a += st.count('i')
	a += st.count('o')
	a += st.count('u')
	a += st.count('y')
	if p_ != a:
		ok = False
if ok:
	print('YES')
else:
	print('NO')


def main():
	vowels = {'a', 'e', 'i', 'o', 'u', 'y'}
	n = int(input())
	a = list(map(int, input().split()))
	for i in range(n):
		s = list(input().split())
		cur = 0
		for k in s:
			for j in k:
				if j in vowels:
					cur += 1
		if cur != a[i]:
			print('NO')
			return
	print('YES')
	return
main()


n = int(input())
arr = list(map(int, input().split()))
vowels = {'a', 'e', 'i', 'o', 'u', 'y'}
flag = True
for i in range(n):
	text = input()
	count = 0
	for j in text:
		if j in vowels:
			count += 1
	if count != arr[i]:
		flag = False
		break
if flag:
	print('YES')
else:
	print('NO')


n = int(input())
lst = [int(i) for i in input().split()]
res = list()
vowels = 'aeiouy'
for i in range(n):
	s = input()
	count = 0
	for elem in s:
		if elem in vowels:
			count += 1
	res.append(count)
if res == lst:
	print('YES')
else:
	print('NO')


n = int(input())
vl = ['a', 'e', 'i', 'o', 'u', 'y']
cl = list(map(int, input().split()))
flag = True
for i in range(n):
	ts = input()
	if flag:
		sum = 0
		for v in vl:
			sum += ts.count(v)
		if sum != cl[i]:
			flag = False
print(['NO', 'YES'][flag])


import sys
vowels = ['a', 'e', 'i', 'o', 'u', 'y']
sys.stdin.readline()
ideal = [int(num) for num in sys.stdin.readline().split()]
real = []
for line in sys.stdin:
	real.append(len([c for c in line if c in vowels]))
if real == ideal:
	print('YES')
else:
	print('NO')


a = int(input())
b = [int(i) for i in input().split()]
p = 1
m = 0
for i in range(a):
	k = 0
	s = input()
	for i in s:
		if i == 'a' or i == 'u' or i == 'e' or (i == 'y') or (i == 'o') or (i == 'i'):
			k += 1
	if k == b[m]:
		p = p * 1
	else:
		p = p * 0
	m += 1
if p == 1:
	print('YES')
else:
	print('NO')


n = int(input())
f = 1
p = [int(i) for i in input().split()]
l = [list(input()) for i in range(n)]
vow = 'aeiyou'
j = 0
for i in l:
	if sum((z in vow for z in i)) != p[j]:
		f = 0
	j += 1
if f:
	print('YES')
else:
	print('NO')


count = int(input())
b = [int(i) for i in input().split()]
alp = ['a', 'e', 'y', 'u', 'i', 'o']
for i in range(count):
	s = input()
	for j in s:
		if j in alp:
			b[i] -= 1
	if b[i] != 0:
		print('NO')
		exit()
print('YES')


n = int(input())
p = [int(i) for i in input().split()]
a = set([i for i in 'aeiouy'])
d = 'YES'
for i in range(n):
	s = input()
	k = 0
	for j in s:
		if j in a:
			k += 1
	if k != p[i]:
		d = 'NO'
print(d)


from functools import reduce
n = int(input())
ts = [int(x) for x in input().split(' ')]
f = True
for t in ts:
	l = input()
	c = 0
	for w in l.split(' '):
		c += reduce(lambda t, l: t + w.count(l), ['a', 'o', 'e', 'i', 'u', 'y'], 0)
	if c != t:
		f = False
print('YES' if f else 'NO')


cin = input
n = int(cin())
a = [int(i) for i in input().split()]
d = {'a': 0, 'e': 0, 'i': 0, 'o': 0, 'u': 0, 'y': 0}
for i in range(n):
	for c in cin():
		if c in d.keys():
			d[c] += 1
	if sum(d.values()) != a[i]:
		print('NO')
		break
	d = d.fromkeys(d, 0)
else:
	print('YES')


n = int(input())
p = input().split()
fail = False
for i in range(n):
	s = list(input())
	cnt = s.count('a') + s.count('e') + s.count('i') + s.count('o') + s.count('u') + s.count('y')
	if cnt != int(p[i]):
		fail = True
if fail:
	print('NO')
else:
	print('YES')


def countVowels(word):
	count = 0
	for i in word:
		if i == 'a' or i == 'e' or i == 'i' or (i == 'o') or (i == 'u') or (i == 'y'):
			count += 1
	return count
n = int(input())
p = list(map(int, input().split()))
isPossible = True
for i in range(n):
	word = input()
	x = countVowels(word)
	if x != p[i]:
		isPossible = False
if isPossible:
	print('YES')
else:
	print('NO')


vowels = 'aeiouy'
n = int(input())
is_good = True
need = list(map(int, input().split()))
for i in range(n):
	s = input()
	cur = 0
	for v in vowels:
		cur += s.count(v)
	is_good &= need[i] == cur
print('YES' if is_good else 'NO')


num_of_s = int(input())
st_razm = input().split()
st_razm = [int(i) for i in st_razm]
text = []
gl = ('a', 'e', 'i', 'o', 'u', 'y')

def gl_in_str(st):
	cnt = 0
	for i in st:
		if i in gl:
			cnt += 1
	return cnt
for i in range(num_of_s):
	text.append(input())
flag = 1
i = 0
while flag and i < len(text):
	if gl_in_str(text[i]) == st_razm[i]:
		i += 1
	else:
		flag = 0
		break
print('YES') if flag else print('NO')


n = int(input())
p = list(map(int, input().split()))
for k in p:
	tmp = 0
	s = input()
	for i in s:
		if i in ['a', 'i', 'u', 'e', 'o', 'y']:
			tmp += 1
	if tmp != k:
		print('NO')
		exit()
print('YES')


def getVowelCount(verse):
	vdict = {'a': 1, 'e': 1, 'i': 1, 'o': 1, 'u': 1, 'y': 1}
	vcount = 0
	for i in range(0, len(verse)):
		if vdict.get(verse[i]):
			vcount += 1
	return vcount

def main():
	result = 'YES'
	n = int(input())
	seq = list(map(int, input().split(' ')))
	for i in range(0, n):
		if seq[i] != getVowelCount(input()):
			result = 'NO'
			break
	print(result)
main()


num = int(input())
li = [int(x) for x in input().split()]
s = set(list('aeiouy'))
lis = [len(''.join(filter(lambda x: x in s, input()))) for x in range(num)]
print('YES' if lis == li else 'NO')


n = int(input())
a = map(int, input().split(' '))
a = list(a)
ok = 1
for i in range(0, n):
	sum = 0
	s = input()
	if ok == 0:
		continue
	for j in range(0, len(s)):
		if s[j] == 'u' or s[j] == 'a' or s[j] == 'i' or (s[j] == 'e') or (s[j] == 'o') or (s[j] == 'y'):
			sum += 1
	if sum != a[i]:
		ok = 0
if ok == 1:
	print('YES')
else:
	print('NO')


import sys
n = int(input())
a = list(map(int, input().split()))
ans = True
for s in sys.stdin:
	cnt = 0
	for c in 'aeiouy':
		cnt += s.count(c)
	ans &= cnt == a.pop(0)
print('YES' if ans else 'NO')


n = int(input())
count = list(map(int, input().split()))
vowel = ('a', 'e', 'i', 'o', 'u', 'y')
for i in range(n):
	loc = 0
	st = input()
	for ch in st:
		if ch in vowel:
			loc += 1
	if loc != count[i]:
		print('NO')
		exit()
print('YES')


cin = input
n = int(cin())
a = [int(i) for i in input().split()]
for i in range(n):
	t = cin()
	if a[i] != sum((t.count(c) for c in 'ueoaiy')):
		print('NO')
		break
else:
	print('YES')


N = int(input())
P = list(map(int, input().strip().split()))
for i in range(0, N):
	S = str(input())
	for s in range(len(S)):
		if S[s] == 'a' or S[s] == 'i' or S[s] == 'u' or (S[s] == 'e') or (S[s] == 'o') or (S[s] == 'y'):
			P[i] = P[i] - 1
if len(set(P)) == 1 and P[0] == 0:
	print('YES')
else:
	print('NO')