One day, the Grasshopper was jumping on the lawn and found a piece of paper with a string. Grasshopper became interested what is the minimum jump ability he should have in order to be able to reach the far end of the string, jumping only on vowels of the English alphabet. Jump ability is the maximum possible length of his jump. Formally, consider that at the begginning the Grasshopper is located directly in front of the leftmost character of the string. His goal is to reach the position right after the rightmost character of the string. In one jump the Grasshopper could jump to the right any distance from 1 to the value of his jump ability.    The picture corresponds to the first example. The following letters are vowels: 'A', 'E', 'I', 'O', 'U' and 'Y'.

The first line contains non-empty string consisting of capital English letters. It is guaranteed that the length of the string does not exceed 100.

Print single integer a — the minimum jump ability of the Grasshopper (in the number of symbols) that is needed to overcome the given string, jumping only on vowels.

import sys,math

s= raw_input()
vowel = ['A','E','I','O','U','Y']
pos = -1
ans=0
for i in xrange(len(s)):
	if s[i] in vowel:
		ans=max(ans,i-pos)
		pos=i
ans=max(ans,len(s)-pos)
print ans

s=raw_input('')
s=s+'A'
mja=1
mji=-1
v=['A','E','I','O','U','Y']
for i in xrange(0,len(s)):
    if (s[i] in v)==True:
        if mja<(i-mji):
            mja=(i-mji)
        mji=i
print mja

# cook your code here
s=' '+raw_input()+'A'
c='AEIUOY'
ans=0
pos=0
for i in xrange(1,len(s)):
    if s[i] in c:
        ans=max(ans,i-pos)
        pos=i
print ans

#!/usr/bin/env python
vowels = ['A','O','Y','U','I','E']
while True:
	s=raw_input()
	if len(s) in range(1,101):
		break
l=[x for x in s]
value = []
p=0
p1=0
for i in range(len(l)):
	p=p1
	if l[i] in vowels:
		p1=i+1
		value.append(p1-p)
	elif i==len(l)-1:
		p1=len(l)+1
		value.append(p1-p)
value.sort()
print value[-1]

n=input()
m=[]
c=0
for i in n:
    if i=='A' or i=='E' or i=='I' or i=='O' or i=='U' or i=='Y':
        m.append(c)
        c=0
    else:
        c=c+1
m.append(c)
print(max(m)+1)

s = " " + raw_input()

max_diff = 0
prev = 0

for i in xrange(1, len(s)):
	if s[i] in "AEIOUY":
		max_diff = max(max_diff, i - prev)
		prev = i

max_diff = max(max_diff, len(s) - prev)
print(max_diff)

#l=map(int, raw_input().split())
s=raw_input()
mx=1
c=1
for i in s:
	mx=max(mx,c)
	if i in ['A','E','I','O','U','Y']:
		c=1
	else:
		c+=1
mx=max(mx,c)
print mx

s = '0'+input()+'1'
l = 'AEIOUY1'
i, k, mx, p, ls = 0, 0, 0, 0, 0
while i<len(s):
    if s[i] in l:
        k=(i-p)
        p = i
        if mx<k:
            mx = k
            ls = 1
    i+=1
if ls==1:
    print(mx)
else:
    print(len(s)-1)

import re

def grasshoper_and_the_string():

	data = input()

	l = sorted(re.findall(r'[^AEIOUYaeiouy]+', data), key=len, reverse=True)

	if len(l):
		return len(l[0]) + 1
	else:
		return 1

print(grasshoper_and_the_string())

s = input()
s = ' '+s
jump = 1
vowels = set(list('AEIOUY'))
prev = 0
check = 0
for i in s:
    if i in vowels:
        check =1
        break
i = 1
if check>0:
    while i<len(s):
        if s[i] in vowels:
            jump = max(jump,i-prev)
            prev = i
        i+=1
    jump = max(jump,i-prev)
    print(jump)
else:
    print(len(s))

w = raw_input() + "A"
m = 0
a = 0
b = 0
v = ["A", "E", "I", "O", "U", "Y"]
for i in range(0, len(w)):
    if w[i] in v:
        a = b
        b = i + 1
        d = b - a
        if d > m:
            m = d
print m

l=['A', 'E', 'I', 'O', 'U','Y']
s=input()
z,p=0,0
for i in range(len(s)):
	if s[i] in l:
		p=0
		continue
	else:
		p+=1
	z=max(z,p)
print(z+1)

#list for walks

list = []
list = raw_input().split()
word = str(list[0])

min = 0
newMin = 0

n = len(word)
for i in range(0,n):
  if word[i] == 'A' or word[i] == 'E' or word[i] == 'I' or word[i] == 'O' or word[i] == 'U' or word[i] == 'Y':
   min = max(min,newMin + 1)
   newMin = 0
  else:
    newMin+=1

print max(min,newMin+1)

s = 'A' + input() + 'A'
ans = last = 0
for i in range(len(s)):
    if s[i] in 'AEIOUY':
        ans = max(ans, i - last)
        last = i
print(ans)

#! /usr/bin/env python
# -*- coding: utf-8 -*-

if __name__ == '__main__':
    l = ['A', 'E', 'I', 'O', 'U', 'Y']
    s = raw_input()
    s = 'S' + s
    lnum,rnum = 0, 0
    mi = 0
    for i in range(len(s)):
        if s[i] in l:
            rnum = i
            tmp = rnum - lnum
            if mi < tmp:
                mi = tmp
            lnum = i
    tmp = len(s) - lnum
    if mi < tmp:
        mi = tmp
    print mi

s=input()
index=[-1]
for i in range(len(s)):
    if s[i] in "AEIOUY":
        index.append(i)
index.append(len(s))
g=-2
for i in range(1,len(index)):
    if index[i]-index[i-1] >g:
        g=index[i]-index[i-1]
print(g)

s = raw_input()
v = [0] + [i+1 for i,c in enumerate(s) if c in 'AEIOUY']+ [len(s)+1]
print max(v[i+1]-v[i] for i in xrange(len(v)-1))

n=input()
arr=[]

for i in range(len(n)) :
	if n[i]=="A" or n[i]=="E" or n[i]=="I" or n[i]=="O" or n[i]=="U" or n[i]=="Y" :
		arr.append(i)

# print(arr)

temp=1

for i in range(1,len(arr)) :
	if abs(arr[i]-arr[i-1])>temp :
		temp=abs(arr[i]-arr[i-1])

if "A" in n or "E" in n or "I" in n or "O" in n or "U" in n  or "Y" in n:
	if len(arr)==1 :
		print(max(arr[0]+1,len(n)-arr[0]))
	else :
		print(max(temp,arr[0]+1,len(n)-arr[-1]))
else :
	print(len(n)+1)

q = input()
s = 0
m = 0
w = {"A", "E", "I", "O", "U", "Y"}
for i in range(len(q)):
    if q[i] in w:
        m = max(m, s)
        s = 0
    else:
        s += 1
m = max(m, s)
print(m + 1)

s = raw_input().strip()
p = -1
ans = 0
for i in range(len(s)):
    if s[i] in "AEIOUY":
        ans = max(i - p, ans)
        p = i
ans = max(len(s) - p, ans)
print ans

s=raw_input()
p=-1
f1=0
l=[]
for f in range(len(s)):
    if s[f] == 'A' or s[f] == 'E' or s[f] == 'I' or s[f] == 'O' or s[f] == 'U' or s[f] == 'Y':
        l.append(f+1)
        p=f
        break
f1=p+1
while f1<len(s):
    if s[f1]=='A' or s[f1]=='E' or s[f1]=='I' or s[f1]=='O' or s[f1]=='U' or s[f1]=='Y':
        l.append(f1-p)
        p=f1
    f1=f1+1
l.append(len(s)-p)
if len(l)==0 and p==-1:
    print len(s)+1
else:
    print max(l)

arr = list(input())
vowels = ['A', 'E', 'I', 'O', 'U', 'Y']
count = 0
jump = [0]
for x in arr:
    if x not in vowels:
        count += 1
    else:
        count += 1
        jump.append(count)
        count = 0
count +=1
jump.append(count)
print(max(jump))

v=('A','E','I','O','U','Y')
s=input()+'A'
c=0
m=0
for i in s:
    c+=1
    if i in v:
        if c>m:
            m=c
        c=0
print(m)

V = ('A', 'E', 'I', 'O', 'Y', 'U')
s = input()
j = -1
max = 0
for i in range(len(s)):
	if s[i] in V:
		if i-j > max:
			max = i-j
		j = i
	if i == len(s)-1:
		if len(s)-j > max:
			max = len(s)-j
print(max)

n = input()
sonor = ['A', 'O', 'U', 'I', 'E', 'Y']
min = 0
count = 1
for c in n:
    if c in sonor:
        if count > min: min = count
        count = 1
    else:
        count+=1
if count > min: min = count
if (min==0): print (count)
else:
  print (min)

a = input()
p = -1
b = ['A','E','I','O','U','Y']
ans = 0
for i in range(len(a)):
    if (a[i] in b):
        if (p == -1):
            ans = i + 1
            p = i
        else:
            ans = max(ans, i - p)
            p = i
ans = max(ans, len(a) - p)
print(ans)

s=str(input())
d=0
dis=0
l=[]
for i in range(0,len(s)):
    if(s[i] in 'AEIUOY'):
        dis=((i+1)-d)
        d=i+1
        l.append(dis)
# print(l)
l.append((len(s)+1)-d)
if(len(l)==0):
    print(len(s)+1)
else:
    print(max(l))

s=input()
a=[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"):
        a.append(i+1)
a.append(len(s)+1)
d=[]
for j in range(1,len(a)):
    d.append(a[j]-a[j-1])
print(max(d))

lI = -1
cur = 0

s = {'A','E','I','O','U','Y'}

S=input()
for x in range(len(S)):
    if S[x] in s:
        if  lI == -1:
            cur = x + 1
            lI = x

        else:
            cur = max(cur, x - lI)
            lI = x
if lI != -1: cur = max(cur, len(S) - lI)
elif lI == -1: cur = len(S) + 1
print(cur)

s = input()
G = ('A', 'E', 'I', 'O', 'U', 'Y')
A = [-1]
minL = 0
L = len(s)

for i in range(L):
    if s[i] in G:
        A.append(i)

for i in range(len(A)-1):
    if A[i+1] - A[i] > minL:
        minL = A[i+1] - A[i]

if len(A) == 1:
    print(L+1)
elif len(A) == 2:
    print(max(A[1]+1, L - A[1]))
else:
    print(max(minL,L - A[len(A)-1]))

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
import re
import math
import itertools
import collections
import bisect
#sys.stdin=file('input.txt')
#sys.stdout=file('output.txt','w')
#10**9+7
mod=1000000007
#mod=1777777777
pi=3.141592653589
IS=float('inf')
xy=[(1,0),(-1,0),(0,1),(0,-1)]
bs=[(-1,-1),(-1,1),(1,1),(1,-1)]
def niten(a,b): return abs(a-b) if a>=0 and b>=0 else  a+abs(b) if a>=0 else abs(a)+b if b>=0 else abs(abs(a)-abs(b))
def fib(n): return [(seq.append(seq[i-2] + seq[i-1]), seq[i-2])[1] for seq in [[0, 1]] for i in range(2, n)]
def gcd(a,b): return a if b==0 else gcd(b,a%b)
def lcm(a,b): return a*b/gcd(a,b)
def eucl(x1,y1,x2,y2): return ((x1-x2)**2+(y1-y2)**2)**0.5
def choco(xa,ya,xb,yb,xc,yc,xd,yd): return 1 if abs((yb-ya)*(yd-yc)+(xb-xa)*(xd-xc))<1.e-10 else 0
def pscl(num,l=[1]):
    for i in range(num):
        l = map(lambda x,y:x+y,[0]+l,l+[0])
    return l

#n,k=map(int,raw_input().split())
#l=map(int,raw_input().split())
s=raw_input()
ans=chk=1
for i in s:
    if i in 'AIUEOY':
        ans=max(chk,ans)
        chk=1
    else:
        chk+=1
print max(ans,chk)
#end = time.clock()
#print end - start

#l=map(int, raw_input().split())
s=raw_input()
mx=1
c=1
for i in s:
	mx=max(mx,c)
	if i in ['A','E','I','O','U','Y']:
		c=1
	else:
		c+=1
mx=max(mx,c)
print mx

r=raw_input()
a=[-1]+[i for i,x in enumerate(r) if x in 'AEIOUY']+[len(r)]
print max([a[i]-a[i-1] for i in xrange(1,len(a))])

s=list(input())
k=['A']
s.append('A')
for i in range(len(s)):
    k.append(s[i])
max=0
p_pos=0
count=0
v=['A','E','I','O','U','Y']
for i in range(len(k)):
    if k[i] in v:
        c_pos=i
        j_l=c_pos-p_pos
        p_pos=i
        count+=1
        if j_l>max:
            max=j_l
if count>0:
   if count==1:
       print(max+1)
   else:
       print(max)
else:
   print(len(s)+1)

line = input() + 'A'
vowels = 'AEIOUY'

start = -1
limit = 1
for i in range(len(line)):
    if line[i] in vowels:
        if i - start > limit:
            limit = i - start
        start = i
print(limit)

import sys

def calculateHop(line) :
    vowels = set(['A','E','I','O','U','Y'])
    count = 0
    result = 0
    for char in line :
        count += 1
        if char in vowels :
            result = max(count, result)
            count = 0
    print max(count+1,result)

if __name__ == "__main__" :
    input = sys.stdin.readline().strip()
    calculateHop(input)

import math,sys,bisect,heapq
from collections import defaultdict,Counter,deque
from itertools import groupby,accumulate
#sys.setrecursionlimit(200000000)
input = iter(sys.stdin.buffer.read().decode().splitlines()).__next__
ilele = lambda: map(int,input().split())
alele = lambda: list(map(int, input().split()))
def list2d(a, b, c): return [[c] * b for i in range(a)]
def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)]
#MOD = 1000000000 + 7
def Y(c):  print(["NO","YES"][c])
def y(c):  print(["no","yes"][c])
def Yy(c):  print(["No","Yes"][c])

S = input()
S = "A" + S + "A"
A = ["A","E","I","O","U","Y"]
T = [*S]
Ans = 0
temp = 0
for i in range(1,len(T)):
    if T[i] in A:
        dis = i - temp
        temp = i
        Ans = max(Ans,dis)
print(Ans)

n=input()
l=[]
cnt=0
ma=0
for i in range(len(n)):
  if n[i] not in "AEIOUY":
    cnt+=1
  else:
    if cnt>=ma:
      ma=cnt
    cnt=0
print(max(cnt+1,ma+1))

data = input() + 'A'

vowels = ['A', 'E', 'I', 'O', 'U', 'Y']

first = 0
second = 0
my_max = 0
for index, letter in enumerate(data):
	if letter in vowels:
		first = second
		second = index + 1
		if my_max < second - first:
			my_max = second - first

print(my_max)

w = raw_input() + "A"
m = 0
a = 0
b = 0
v = ["A", "E", "I", "O", "U", "Y"]
for i in range(0, len(w)):
    if w[i] in v:
        a = b
        b = i + 1
        d = b - a
        if d > m:
            m = d
print m

# python2
import sys, threading, os.path
import collections, heapq, math,bisect

sys.setrecursionlimit(10**6) # max depth of recursion
threading.stack_size(2**27)

def main():
    if os.path.exists('input.txt'):
        input = open('input.txt', 'r')
    else:
        input = sys.stdin
    #--------------------------------INPUT---------------------------------
    s = str(input.readline())
    vowels = ['A', 'E', 'I', 'O', 'U', 'Y']
    indexes = []
    maxone=0
    for i in range(len(s)):
        vowel = False
        for x in vowels:
            if x == s[i]:
                vowel = True
                break
        if vowel:
            indexes.append(i+1)
    if len(indexes)==0:
        output = len(s)
    else:
        #print indexes
        sols = []
        for i in range(len(indexes)):
            if i ==0:
                sols.append(indexes[i])
            else:
                sols.append(indexes[i]-indexes[i-1])
        sols.append((len(s)-indexes[len(indexes)-1]))
        #print sols
        output = max(sols)
    #-------------------------------OUTPUT----------------------------------
    if os.path.exists('output.txt'):
        open('output.txt', 'w').writelines(str(output))
    else:
        sys.stdout.write(str(output))

if __name__ == "__main__":
    main()

x=['a','e','i','o','u','y']
s=raw_input().lower()
k=0
y=[]
for i in s:
    if i in x:
        y.append(k)
        k=0
    else:
        k+=1
y.append(k)
if len(s)>1:
    print max(y)+1
elif(s in x):
    print 1
else:
    print 2

import re
print(len(max(re.split('[AEIOUY]', input()), key=len))+1)

a = input()
p = -1
b = ['A','E','I','O','U','Y']
ans = 0
for i in range(len(a)):
    if (a[i] in b):
        if (p == -1):
            ans = i + 1
            p = i
        else:
            ans = max(ans, i - p)
            p = i
ans = max(ans, len(a) - p)
print(ans)

word = 'O' + input() + 'O'

positions = [i for i in range(len(word)) if word[i] in "AEIOUY"]

jumps = [positions[i] - positions[i - 1] for i in range(1 , len(positions))]
#print(positions)
#print(jumps)
print(max(jumps))

a = input()
b = ['A', 'E', 'I', 'O', 'U', 'Y']
m = 1
c = 0
for i in range(len(a)):
    if a[i] in b:
        c = 0
    else:
        c += 1
    m = max(m, c + 1)
print(m)

str=input()
str+='$'
ans=0
vowels=['A','E','I','O','U','Y','$']
cur=0
for i in range(1,len(str)+1):
  if str[i-1] in vowels:
    ans=max(ans,i-cur)
    cur=i
print(ans)

a=input()
x="AEIOUY"
y=0
z=0
for i in a:
    if i in x:
        y=0
    else:
        y+=1
    z=max(z,y)
print(z+1)

def main():
    inpstr = raw_input()
    ans = 0
    tmpans = 1
    vowels = [ 'A', 'E', 'I', 'O', 'U', 'Y' ]
    for ch in inpstr:
        if ch in vowels:
            ans = max( ans, tmpans )
            tmpans = 1
        else:
            tmpans = tmpans + 1
    ans = max( ans, tmpans )
    print ans

if __name__ == "__main__":
    main()

# #
# CodeForces
# Problem 733A
# Python 2
# #

VOWELS = ['A', 'E', 'Y', 'U', 'I', 'O']

jump_len = 1
current_len = 1

for char in raw_input():
    if not char in VOWELS:
        current_len += 1
    else:
        if current_len > jump_len:
            jump_len = current_len

        current_len = 1

if current_len > jump_len:
    jump_len = current_len

print jump_len

str = raw_input()

vowels = ['A', 'E', 'I', 'O', 'U', 'Y']
l = 0
t = -1

for i in range(len(str)):
    if str[i] in vowels:
        if i - t > l:
            l = i - t
        t = i
if len(str) - t > l:
    l = len(str) - t

if l == 0:
    print len(str) + 1
else:
    print l

#!/usr/bin/env python3

from   functools import reduce
from   operator  import add
import re

def main():
    try:
        while True:
            print(reduce(max, (len(m.group()) for m in re.finditer(r"[^AEIOUY]+", input())), 0) + 1)

    except EOFError:
        pass

main()

s = raw_input()
c = 1
ans = 0
for i in xrange(0, 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':
		ans = max(ans, c)
		c = 1
	else:
		c = c + 1
ans = max(ans, c)
print ans

def vowel(a):
    if a == "A" or a=="E" or a=="I" or a=="O" or a=="U" or a=="Y":
        return True
    return False

path = input()
path = "A"+path+"A"
Min = 0
cp = -1
temp=[]
for i in range(len(path)):
    if vowel(path[i]):
        temp.append(1)
    else:
        temp.append(0)

temp = [i for i,x in enumerate(temp) if x == 1]
Max=1
for i in range(len(temp)-1):
    if temp[i+1] - temp[i] > Max:
        Max = temp[i+1] - temp[i]
print(Max)

s = input()
counter = 0
tmp = 0
z = 'AEIOUY'
for i in s:
    if i in z:
        tmp = max(tmp, counter)
        counter = 0
    else:
        counter += 1
tmp = max(tmp, counter)
print(tmp + 1)

# CodeForcesian
# ♥
# خودت همان تغییری باش که میخواهی در  دنیا ببینی

s = raw_input()
v = [0] + [i+1 for i,c in enumerate(s) if c in 'AEIOUY']+ [len(s)+1]
print max(v[i+1]-v[i] for i in xrange(len(v)-1))

t = input()
d = {"A","E","I","O","U","Y"}
z = 0
t1 = 0
k = 0
for i in range(len(t)):
	if t[i] in d:
		k = k + 1
		z = max(z,k)
		k = 0
	else:
		k = k + 1
		z = max(z,k)
if i == len(t)-1 and t[i] in d:
	k+=0
else:
	k+=1
z = max(z,k)
print(z)

vowels = ['A', 'E', 'I', 'O', 'U', 'Y']

myString = input()
myList = list()
myJumps = list()

for x in range(0, len(myString), 1):
    myList.append(myString[x])

temp = 0

for element in myList:
    if element in vowels:
        myJumps.append(temp+1)
        temp = 0
    else:
        temp += 1
    myJumps.append(temp+1)

print(max(myJumps))

'''
myInput = input()
myList = list()
myJumps = list()

#sum = 0
temp = 0

for x in range(0, len(myInput), 1):
    myList.append(myInput[x])

if myList[0] in vowels:

    sum += 1

    for element in myList:
        if element in vowels:
            temp += 1
        else:
            sum += temp
            myJumps.append(temp)
            temp = 0

else:

    for element in myList:
        if element in vowels:
            temp += 1
        else:
            sum += temp
            myJumps.append(temp)
            temp = 0

print(myJumps)

'''

lI = -1
cur = 0

s = {'A','E','I','O','U','Y'}

S=input()
for x in range(len(S)):
    if S[x] in s:
        if  lI == -1:
            cur = x + 1
            lI = x

        else:
            cur = max(cur, x - lI)
            lI = x
if lI != -1: cur = max(cur, len(S) - lI)
elif lI == -1: cur = len(S) + 1
print(cur)

str1="AEYOUI"
c=1
m=0
for k in input()+"A":
    if k in str1:
        if c > m:
            m = c
        c = 1
    else:
        c += 1
print(m)

st=list(input())
st.append("I")
maxi=0
start=0
for x in range(len(st)):
   if st[x] in "AEIOUY5":
      finish=x+1
      if finish - start > maxi :
         maxi =finish- start
      start = finish
print(maxi)

get_int = lambda: map(int, input().split())

s = input()

x = 1
ans = 1

for i in s:
    if i in "AEIOUY":
        if ans < x:
            ans = x
        x = 1
    else:
        x += 1

print(max(x, ans))

s = "A" + raw_input() + "A"

vowels = ['A', 'E', 'I', 'O', 'U', 'Y']

jump = 1
for i in xrange(len(s)):
	if s[i] in vowels:
		for j in xrange(i+1, len(s)):
			if s[j] in vowels:
				jump = max(jump, j-i)
				i = i + j
				break

print jump

import re

def grasshoper_and_the_string():

	data = input()

	l = sorted(re.findall(r'[^AEIOUYaeiouy]+', data), key=len, reverse=True)

	if len(l):
		return len(l[0]) + 1
	else:
		return 1

print(grasshoper_and_the_string())

vowels = 'AEIOUY'

s = raw_input()
s = [0] + [i + 1 for i, c in enumerate(s) if c in vowels] + [len(s) + 1]

ans = 0
for i in xrange(1, len(s)):
    ans = max(ans, s[i] - s[i - 1])

print ans

s = input()
cnt = jump = 0
vowels = ['A','E','I','O','U','Y']
for i in range(len(s)):
    if s[i] not in vowels:
        cnt += 1
        if cnt > jump:
            jump = cnt
    else:
        cnt = 0
print(jump+1)

x=raw_input()

r=[]
c=1
i=0
m=0
while i<len(x):
    if x[i]=='A' or  x[i]=='E' or x[i]=='I' or x[i]=='O' or x[i]=='U' or x[i]=='Y':
        r.append(c)
        m=1
        mm=i
        c=1
    else:
        c+=1
    i+=1

if m==1:
    r.append(len(x)-mm)
    print(max(r))
else:
    print(len(x)+1)

#http://codeforces.com/contest/733/problem/A?locale=en
n = input()
c = []
t = 0
vowels = 'AEIOUY'
k = False
try:
    for i in range(len(n)):
        if n[i] in vowels:
            c.append((i+1)-t)
            t= i+1
            k = True
    if k == True:
        c.append(len(n)-(t-1))
        print(max(c))
    else:
        print(len(n)+1)
except:
    print(len(n)+1)

s = raw_input()
ja = 0
ja_max = -1
for ch in s:
	if ch == 'A' or ch == 'E' or ch == 'I' or ch == 'O' or ch == 'U' or ch == 'Y':
		ja += 1
		ja_max = max(ja_max,ja);
		ja = 0
	else:
		ja += 1
ja+=1
ja_max = max(ja_max,ja)
print ja_max

w = raw_input() + "A"
m = 0
a = 0
b = 0
v = ["A", "E", "I", "O", "U", "Y"]
for i in range(0, len(w)):
    if w[i] in v:
        a = b
        b = i + 1
        d = b - a
        if d > m:
            m = d
if m == 0:
    m = len(w)
print m

import re
s = raw_input()
print max(map(len, re.split(r"[AEIOUY]", s)))+1

def isVowel( char ):
    vowels = [ 'A', 'E', 'I', 'O', 'U', 'Y' ]
    if char in vowels:
        return True
    else:
        return False

def main():
    inpstr = raw_input()
    ans = 0
    tmpans = 1
    for c in inpstr:
        if isVowel( c ):
            ans = max( ans, tmpans )
            tmpans = 1
        else:
            tmpans = tmpans + 1
    ans = max( ans, tmpans )
    print ans

if __name__ == "__main__":
    main()

s = str(raw_input())+'A'

vowels = ['A','E','I','O','U','Y']
i = -1
jump = 1
for j in range(0,len(s)):
        if not s[j] in vowels:
            continue
        else:
            diff = j-i
            if diff > jump:
                jump = diff
            i = j

print jump

string = raw_input().strip()
vow = 'AEIOUY'
ans = 1
ll = len(string)
p = 0

while p<ll:
	if string[p] in vow:
		#print 'vow',p
		p+=1
	else:
		k = 0
		while p+k < ll and string[p+k] not in vow:
			k+=1
			#print p,p+k,k
		ans = max(ans,k+1)
		p = p+k

print ans

str = input()
s1 = str
s2 = 'A'
str = s2 + s1 + s2
l = len(str)
pos = 0
ans = 0
for i in range(0, l):
    if str[i] == 'A' or str[i] == 'E' or str[i] == 'O' or str[i] == 'U' or str[i] == 'I' or str[i] == 'Y' :
        ans = max(ans, i - pos)
        pos = i
print(ans)

t = input()
cnt = 0
max1 = 0
t1 = 'AEIOUY'
for i in t:
  cnt = cnt + 1
  if i in t1:
    if cnt > max1:
      max1 = cnt
    cnt = 0
cnt = cnt + 1
if cnt > max1:
  max1 = cnt
print(max1)

n = input()
a = 0

mx = 0

for i in range(len(n)):
    if n[i] == 'A' or n[i] == 'E' or n[i] == 'I' or n[i] == 'O' or n[i] == 'U' or n[i] == 'Y':
        a = a + 1
        mx = max(mx , a)
        a = 0
    else:
        a = a + 1

mx = max(mx , a + 1)

print(mx)

T  = 'A' + raw_input() + 'A'
Ra = 0
Mx = 0
for X in range(len(T)):
    if T[X] in 'AEIOUY':
        Mx = max(Mx,X-Ra)
        Ra = X
print Mx

#########			##	##     ##    	  ####  #####  ##     #  ##     #		##
	#			   # #	# #   # #		 #	  #	#	#  # #    #  # #    #	   # #
	#			  #  #	#  ###  #	    #		#	#  #  #   #  #  #   #	  #  #
	#			 #####	#	#	#	   #    ###	#	#  #   #  #  #   #  #    #####
	#			#    #	#		#	   #    # #	#	#  #	# #  #	  # #   #    #
######### 	   #     # 	#		#		##### #	#####  #	 ##  #	   ##  #     #

"""

PPPPPPP       RRRRRRR		    OOOO	  VV        VV    EEEEEEEEEE
PPPPPPPP      RRRRRRRR         OOOOOO     VV       VV	  EE
PPPPPPPPP     RRRRRRRRR       OOOOOOOO    VV      VV	  EE
PPPPPPPP      RRRRRRRR        OOOOOOOO    VV     VV    	  EEEEEE
PPPPPPP       RRRRRRR         OOOOOOOO    VV    VV        EEEEEEE
PP  		  RRRR			  OOOOOOOO    VV   VV         EEEEEE
PP			  RR  RR          OOOOOOOO    VV  VV          EE
PP			  RR    RR         OOOOOO     VV VV           EE
PP			  RR      RR        OOOO      VVVV            EEEEEEEEEE

"""

"""
 Perfection is achieved not when there is nothing more to add, but rather when there is nothing more to take away.
"""
import sys
input = sys.stdin.readline
# from bisect import bisect_left as lower_bound;
# from bisect import bisect_right as upper_bound;
# from math import ceil, factorial;

def ceil(x):
    if x != int(x):
        x = int(x) + 1
    return x

def factorial(x, m):
	val = 1
	while x>0:
		val = (val * x) % m
		x -= 1
	return val

# swap_array function
def swaparr(arr, a,b):
    temp = arr[a];
    arr[a] = arr[b];
    arr[b] = temp;

## gcd function
def gcd(a,b):
    if b == 0:
        return a;
    return gcd(b, a % b);

## nCr function efficient using Binomial Cofficient
def nCr(n, k):
    if(k > n - k):
        k = n - k;
    res = 1;
    for i in range(k):
        res = res * (n - i);
        res = res / (i + 1);
    return int(res);

## upper bound function code -- such that e in a[:i] e < x;
def upper_bound(a, x, lo=0, hi = None):
    if hi == None:
        hi = len(a);
    while lo < hi:
        mid = (lo+hi)//2;
        if a[mid] < x:
            lo = mid+1;
        else:
            hi = mid;
    return lo;

## prime factorization
def primefs(n):
    ## if n == 1    ## calculating primes
    primes = {}
    while(n%2 == 0 and n > 0):
        primes[2] = primes.get(2, 0) + 1
        n = n//2
    for i in range(3, int(n**0.5)+2, 2):
        while(n%i == 0 and n > 0):
            primes[i] = primes.get(i, 0) + 1
            n = n//i
    if n > 2:
        primes[n] = primes.get(n, 0) + 1
    ## prime factoriazation of n is stored in dictionary
    ## primes and can be accesed. O(sqrt n)
    return primes

## MODULAR EXPONENTIATION FUNCTION
def power(x, y, p):
    res = 1
    x = x % p
    if (x == 0) :
        return 0
    while (y > 0) :
        if ((y & 1) == 1) :
            res = (res * x) % p
        y = y >> 1
        x = (x * x) % p
    return res

## DISJOINT SET UNINON FUNCTIONS
def swap(a,b):
    temp = a
    a = b
    b = temp
    return a,b;

# find function with path compression included (recursive)
# def find(x, link):
#     if link[x] == x:
#         return x
#     link[x] = find(link[x], link);
#     return link[x];

# find function with path compression (ITERATIVE)
def find(x, link):
    p = x;
    while( p != link[p]):
        p = link[p];

    while( x != p):
        nex = link[x];
        link[x] = p;
        x = nex;
    return p;

# the union function which makes union(x,y)
# of two nodes x and y
def union(x, y, link, size):
    x = find(x, link)
    y = find(y, link)
    if size[x] < size[y]:
        x,y = swap(x,y)
    if x != y:
        size[x] += size[y]
        link[y] = x

## returns an array of boolean if primes or not USING SIEVE OF ERATOSTHANES
def sieve(n):
    prime = [True for i in range(n+1)]
    p = 2
    while (p * p <= n):
        if (prime[p] == True):
            for i in range(p * p, n+1, p):
                prime[i] = False
        p += 1
    return prime

#### PRIME FACTORIZATION IN O(log n) using Sieve ####
MAXN = int(1e5 + 5)
def spf_sieve():
    spf[1] = 1;
    for i in range(2, MAXN):
        spf[i] = i;
    for i in range(4, MAXN, 2):
        spf[i] = 2;
    for i in range(3, ceil(MAXN ** 0.5), 2):
        if spf[i] == i:
            for j in range(i*i, MAXN, i):
                if spf[j] == j:
                    spf[j] = i;
    ## function for storing smallest prime factors (spf) in the array

################## un-comment below 2 lines when using factorization #################
# spf = [0 for i in range(MAXN)]
# spf_sieve();
def factoriazation(x):
    ret = {};
    while x != 1:
        ret[spf[x]] = ret.get(spf[x], 0) + 1;
        x = x//spf[x]
    return ret;
    ## this function is useful for multiple queries only, o/w use
    ## primefs function above. complexity O(log n)

## taking integer array input
def int_array():
    return list(map(int, input().strip().split()));

def float_array():
    return list(map(float, input().strip().split()));

## taking string array input
def str_array():
    return input().strip().split();

#defining a couple constants
MOD = int(1e9)+7;
CMOD = 998244353;
INF = float('inf'); NINF = -float('inf');

################### ---------------- TEMPLATE ENDS HERE ---------------- ###################

from itertools import permutations
import math

def solve():
	s = input().lower()
	j = 0
	m = 0
	for i in range(1, len(s) + 1):
		if s[i - 1] in "aeiouy":
			m = max(m, abs(i - j))
			j = i
			# print(i, m)
	m = max(len(s) - j, m)
	if m == 0:
		print(len(s))
		return
	print(m)

if __name__ == '__main__':
	for _ in range(1):
		solve()
	# fin_time = datetime.now()
# 	print("Execution time (for loop): ", (fin_time-init_time))

def vowel(s):
	return (s == 'a' or s == 'e' or s == 'i' or s == 'o' or s == 'u' or s == 'y')
s = input().lower()
a = []
for i in range(len(s)):
	if vowel(s[i]):
		a.append(i)
if a == []:
	print(len(s)+1)
else:
	b = [a[0]+1]
	for i in range(len(a)-1):
		b.append(a[i+1]-a[i])
	b.append(len(s)-a[-1])
	print(max(b))

s = 'Y' + input() + 'Y'
index = []
vow = set(['A', 'E', 'I', 'O', 'U', 'Y'])
for i in range(len(s)):
    if s[i] in vow:
        index.append(i)
ans = []
for i in range(len(index) - 1):
    ans.append(index[i+1] - index[i])
print(max(set(ans)))

t = input()
d = {"A","E","I","O","U","Y"}
z = 0
t1 = 0
k = 0
for i in range(len(t)):
	if t[i] in d:
		k = k + 1
		z = max(z,k)
		k = 0
	else:
		k = k + 1
		z = max(z,k)
if i == len(t)-1 and t[i] in d:
	k+=0
else:
	k+=1
z = max(z,k)
print(z)

lI = -1
cur = 0

s = {'A','E','I','O','U','Y'}

S=input()
for x in range(len(S)):
    if S[x] in s:
        if  lI == -1:
            cur = x + 1
            lI = x

        else:
            cur = max(cur, x - lI)
            lI = x
if lI != -1: cur = max(cur, len(S) - lI)
elif lI == -1: cur = len(S) + 1
print(cur)

'''n=int(input())
p=input().rstrip().split(' ')
if int(p[1])==7 or int(p[0])==7:
    print(0)
elif int(p[1])>7:
    for i in range(int(p[1]),-1,-1):
        T=list(str(i))
        if '7' in T:
            V=i;
            break;
    B=int(p[1])-V;
    print(B//n)
else:
    B=3+int(p[1])
    print(B//n)'''

s=input().rstrip()
x=list(s)
S=0;
w=[]
l=['A','E','I','O','U','Y']
for i in range(0,len(x)):
    if x[i] in l:
        w.append(i+1-S)
        S=i+1;
w.append(len(x)+1-S)
print(max(w))

st = raw_input()
vowels = ['A', 'E', 'I', 'O', 'U', 'Y']

i = 0
while i < len(st):
    if st[i] in vowels:
        prev = i
        break
    i += 1

max_jump = i + 1
prev, cur = i, i + 1

while prev < len(st) and cur < len(st):
    if st[cur] in vowels:
        max_jump = max(cur-prev, max_jump)
        prev = cur
    cur += 1

print max(max_jump, cur-prev)

vowels = "AEIOUY"

s = raw_input()

cur_most = 0
cur = 1
for c in s:
    if c in vowels:
        cur_most = max(cur_most, cur)
        cur = 1
    else:
        cur += 1
cur_most = max(cur_most, cur)

print cur_most

s=input()
l=[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'):
		l.append(i+1)
l.append(len(s)+1)
l2=[]
for i in range(len(l)-1):
	l2.append(l[i+1]-l[i])
print(max(l2))

a,b=1,1
for i in input()+'A':
    if i in 'AEIOUY':
        a=max(a,b)
        b=1
    else:
        b+=1
print(a)

s = raw_input()
a = filter(lambda (i, e):e in {'A', 'E', 'I', 'O', 'U', 'Y'}, enumerate(s))
ans = max(a[0][0] + 1, len(s) - a[-1][0]) if a else len(s) + 1
for i in range(1, len(a)):
    ans = max(ans, a[i][0] - a[i-1][0])
print ans

vowels = ['A', 'E', 'I', 'O', 'U', 'Y']
last = 0
ans = 0

s = raw_input()
n = len(s)

for i in range(1, n + 1):
	c = s[i - 1]
	if c in vowels:
		ans = max(ans, i - last)
		last = i

ans = max(ans, n + 1 - last)

print ans

q = input()
s = 0
m = 0
w = {"A", "E", "I", "O", "U", "Y"}
for i in range(len(q)):
    if q[i] in w:
        m = max(m, s)
        s = 0
    else:
        s += 1
m = max(m, s)
print(m + 1)

s=input()

indices = [i for i, x in enumerate(s) if x == "A" or x == "E" or x == "I" or x == "O" or x == "U" or x == "Y" ]
#print (indices)
if len(indices)==1:
    print (max(indices[0]+1,len(s)-indices[0]))
elif len(indices)==0:
    print (len(s)+1)
else:
    m=[]

    for i in range(len(indices)-1):
        m.append(indices[i+1]-indices[i])
    m.append(len(s)-indices[len(indices)-1])
    m.append(indices[0]+1)
    #print (m)
    print (max(m))

s = raw_input()

ma = 0
i = 0

for c in s:
    i += 1
    if c in "AEIOU":
        if i > ma:
            ma = i
        i = 0

i += 1
if i > ma:
    ma = i

print ma or len(s) + 1

a=input()
x="AEIOUY"
y=0
z=0
for i in a:
    if i in x:
        y=0
    else:
        y+=1
    z=max(0,y)
print(z+1)

s=input()
s1=[i 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"]
d=0
for i in range(len(s1)-1):
    if s1[i+1]-s1[i]>d:
        d=s1[i+1]-s1[i]
print (d )

s = [str(x) for x in raw_input().split()]
vowels = ['A','E','I','O','U']
i = 0
jump = 1
for j in range(1,len(s)):
    if not s[j] in vowels:
        continue
    else:
        diff = j-i
        if diff > jump:
            jump = diff
        i = j

print jump

def main():
    tmp=raw_input()
    l=tmp.__len__()
    i=0
    ans=0
    while i<l:
        j=i+1
        while j<l and tmp[j]!='A' and tmp[j]!='E' and tmp[j]!='I' and tmp[j]!='O' and tmp[j]!='U' and tmp[j]!='Y':
            j+=1
        ans=max(ans,j-i)
        i=j
    print ans
main()

inp = raw_input()
vowels = ['A', 'E', 'I', 'O', 'U', 'Y']
jumps = [0]
for i in range(0, len(inp)):
    if inp[i] in vowels:
        jumps.append(i+1)
jumps.append(len(inp))
max_jump = 0
for i in range(0, len(jumps) - 1):
    present, nxt = jumps[i], jumps[i+1]
    max_jump = max(max_jump, (nxt - present))
print max_jump

n=input()
l=['A','E','I','O','U','Y']
v=[]
for i in range(len(n)):
	if n[i] in l:
		v.append(i)
w=[]
mazx=0
for i in range(len(v)-1):
	if (v[i+1]-v[i])>mazx:
		mazx=v[i+1]-v[i]
if v==[]:
	print(len(n)+1)
elif v[0]==v[-1]:
	 print(max(v[0],len(n)-v[0]))
else:

	print(max(mazx,1))

# MH RIYAD
#Daffodil Intl. Univarsity

st=input()
leng=len(st)
last_dis=0
ans=0

for i in range(0,leng):
    if st[i]=='A' or st[i]=='E' or st[i]=='I' or st[i]=='O' or st[i]=='U' or st[i]=='Y':
        ans=max(ans,(i+1)-last_dis)
        last_dis = i+1

if  ans==0:
    print(leng+1)
else:
    print(ans)

s=input()
l="AEIOUY"
n=len(s)
b=[]
m=0
if(n==1):
    if(s[0] in l):
        print(1)
    else:
        print(2)
else:
    for i in range(n):
        if s[i] in l:
            b.append(i)
            a=i
    for i in range(1,len(b)):
        m=max(m,b[i]-b[i-1])
        m=max(m,b[0]+1)
        m=max(m,n-a)
    print(m)

w = raw_input()
m = 0
a = 0
b = 0
v = ["A", "E", "I", "O", "U", "Y"]
for i in range(0, len(w)):
    if w[i] in v:
        a = b
        b = i + 1
        d = b - a
        if d > m:
            m = d
print m

s = input()
a = ['A', 'E', 'I', 'O', 'U', 'Y']
k, max = 1, 1
if len(s)==1:
    print(1 if s[0] in a else 2)
else:
    for i in range(len(s)-1):
        if s[i] not in a:
            k+=1
        elif s[i] in a:
            k = 1
        if k>max:
            max = k
    print(max)

st=list(input())
maxi=0
start=0
bol=True
for x in range(len(st)):
   if st[x] in "AEIOU":
      finish=x
      if finish- start > maxi :
         maxi =finish- start
      start = finish
print(maxi)

l=list(input())
sadonok=["A","E","I","O","U","Y"]
x,ans,z=[],[],[]
if len(l)==1 and l[0] in sadonok:
    print(1)
    exit()
for i in range(len(sadonok)):
    z.append(l.count(sadonok[i]))
if sum(z)==0:
    print(len(l)+1)
else:
    for i in range(len(l)):
        for j in range(len(sadonok)):
            if l[i]==sadonok[j]:
                x.append(l.index(l[i]))
                l[i]="W"
    if len(x)==1:
        print(abs((x[0])-len(l)))
    else:
        for i in range(len(x)-1):
            ans.append(abs(x[i]-x[i+1]))
        print(max(ans))

import sys
import math

#to read string
get_string = lambda: sys.stdin.readline().strip()
#to read list of integers
get_int_list = lambda: list( map(int,sys.stdin.readline().strip().split()) )
#to read integers
get_int = lambda: int(sys.stdin.readline())

#--------------------------------WhiteHat010--------------------------------------#
s = '#'+get_string()
n = len(s)
vow = {'A','E','I','O','U','Y'}
i = j = 0
m = 0
while j < n:
    if s[j] in vow:
        m = max(m, j-i)
        i = j
        j += 1
        while j < n and s[j] not in vow:
            j += 1
    else:
        j += 1
print(m)

# import sys
# sys.stdin=open("input.in",'r')
# sys.stdout=open("out.out",'w')
s=input()
v=["A","E","I","O","U","Y"]
c=1
m=0
for i in s:
	if i in v:
		c+=1
		m=max(m,c)
		c=1
	else:
		c+=1
m=max(m,c)
if m==0:
	print(len(s)+1)
else:
	print(m)

A = 'a'
B = raw_input()
A = A + B
ans = 0
for i in xrange(len(A) - 1):
	nex = ord(A[i+1]) - 96
	curr = ord(A[i]) - 96
	ans += min(abs(nex-curr), abs(26-abs(nex-curr)))
print ans

str = input()
a = []
init = 0
if len(str) == 1:
	if str == 'A' or str == 'E' or str == 'I' or str == 'O' or str == 'U' or str == 'Y':
		a.extend([1])
	else:
		a.extend([2])
else:
	for i in range(len(str)):
		if str[i] == 'A' or str[i] == 'E' or str[i] == 'I' or str[i] == 'O' or str[i] == 'U' or str[i] == 'Y':
			diff = i - init
			init = i
			a.extend([diff])
		else:
			a.extend([len(str)])

print(max(a))

def con(s):
	return not(s == 'a' or s == 'e' or s == 'i' or s == 'o' or s == 'u')
s = input().lower()
length = 0
cur = 0
for i in s:
	if con(i):
		cur += 1
		length = max(length,cur)
	else:
		cur = 1
length = max(length,cur)
print(length)

inp=input()
lst=[0]*len(inp)
for i in range(len(inp)):
    if inp[i] in "AEIUOY":
        lst[i]=i+1

jumps=[]
last=current=0

for i in range(len(lst)):
    if lst[i]!=0:
        current=lst[i]
        jump=current-last
        jumps.append(jump)
        last=current
if jumps == []:
    print(len(inp)+1)
else:
    print(max(jumps))

def fun(c):
    if(c == 'A' or c=='E' or c=='I' or c=='O' or c=='U' or c=='Y'):
        return 0
    else:
        return 1

s = raw_input()

ans = 1
count = 1
l = len(s)

for i in range(1,l):
    if(fun(s[i])):
        count+=1
    else:
        ans = max(ans,count)
        count=1

if(l==1):
    print 0
else:
    print ans

#sys.stdout=open("output.txt", 'w')
#sys.stdout.write("Yes" + '\n')
#from  sys import stdin
#input=stdin.readline
#a = sorted([(n, i) for i, n in enumerate(map(int, input().split()))])
# from collections import Counter
# import sys
#s="abcdefghijklmnopqrstuvwxyz"
#arr=sorted([(int(x),i) for i,x in enumerate(input().split())])
#n=int(input())
#n,k=map(int,input().split())
#arr=list(map(int,input().split()))
#arr=list(map(int,input().split
s = input()
st = "AEIOU"
ind=0
m = 0
for i in range(len(s)):
    if s[i] in st:
        m = max(m, i-ind)
        ind=i
print(m)

s = input()
s = 'A'+s+'A'
n = [i for i,e in enumerate(s) if e in ['A','E','O','U','I']]
#print(n)
for i in range(len(n)-1):
     n[i] = n[i+1] -n [i]
print(max(n[:-1]))

def fun(c):
    if(c == 'A' or c=='E' or c=='I' or c=='O' or c=='U' or c=='Y'):
        return 0
    else:
        return 1

s = raw_input()

ans = 1
count = 1
l = len(s)

for i in range(1,l):
    if(fun(s[i])):
        count+=1
    else:
        ans = max(ans,count)
        count=1

print ans

a = input()
maximum = 0

if ("A" not in a) and ("A" not in a) and ("A" not in a) and ("A" not in a) and ("A" not in a) and ("A" not in a):
    print(len(a)+1)
else:
    for i in range(len(a)):
        if a[i] in "AOUIYE":
            for j in range(i + 1, len(a)):
                if a[j] in "AOUIYE":
                    if j - i > maximum:
                        maximum = j - i
                    break
            else:
                if len(a) - i > maximum:
                    maximum = len(a) - i
    print(maximum)

l = list(raw_input())
v = ['A', 'E', 'I', 'O', 'U', 'Y']
m = 0
last = 0
for i in range(len(l)):
	if l[i] in v:
		m = max(m, i - last)
		last = i
print max(m, len(l) - last)

import sys

a=sys.stdin.read()
a.strip().replace("\n","")
maxdist=0
a=a+"A"
print("4")
for i in range(len(a)):
    if(a[i] in "AEIOUY"):
        for j in range(i+1,len(a)):
            if(a[j] in "AEIOUY"):
                print(j,i)
                if((j-i)>maxdist):
                    maxdist=j-i
                break
print(maxdist)
#sys.stdout.write(str(maxdist))

# -*- coding: utf-8 -*-
# @Date    : 2018-10-07 10:32:59
# @Author  : raj lath (oorja.halt@gmail.com)
# @Link    : link
# @Version : 1.0.0

from sys import stdin

max_val=int(10e12)
min_val=int(-10e12)

def read_int()     : return int(stdin.readline())
def read_ints()    : return [int(x) for x in stdin.readline().split()]
def read_str()     : return input()
def read_strs()    : return [x for x in stdin.readline().split()]

string = read_str()+" "
maxs =  0
indx = -1
for i, v in enumerate(string):
    if v in "AIEOUY":
        maxs = max(i - indx, maxs)
        indx = i
print(maxs)

n=input()
m=[]
c=0
for i in n:
    if i=='A' or i=='E' or i=='I' or i=='O' or i=='U':
        m.append(c)
        c=0
    else:
        c=c+1
m.append(c)
print(max(m)+1)

inp=input()
lst=[0]*len(inp)
for i in range(len(inp)):
    if inp[i] in "AEIUOY":
        lst[i]=i+1

jumps=[0]
last=current=0

for i in range(len(lst)):
    if lst[i]!=0:
        current=lst[i]
        jump=current-last
        jumps.append(jump)
        last=current
print(max(jumps))

V = ('A', 'E', 'I', 'O', 'Y')
s = input()
j = -1
max = 0
for i in range(len(s)):
	if s[i] in V:
		if i-j > max:
			max = i-j
		j = i
	if i == len(s)-1:
		if len(s)-j > max:
			max = len(s)-j
print(max)

string = input()
stringToList = list(string)
vowels = ['A','E','I','O','U','Y']
count = 0
jumps = []

for x in stringToList:
 count+=1
 if x in vowels:
  jumps.append(count)
  count = 0
 else:
  jumps.append(0)
print (max(jumps))

paper=input()
position=[]
vowels=["A","E","I","O","U","Y"]
for i in paper:
    if i in vowels:
        position.append(1)
    else:
        position.append(0)

jump_ability=0
count=0

for i in position:
    if i==0:
        count +=1
    if i==1:
        count+=1
        if count>jump_ability:
            jump_ability= count
        count = 0

if count>jump_ability:
    jump_ability=count+1
if len(position)==1 and paper[0] not in vowels:
    jump_ability=2

print (jump_ability)

import sys
inp = raw_input();
list = [];
for i in range(len(inp)):
    if(inp[i]=='A' or inp[i]=='E' or inp[i]=='I' or inp[i]=='O' or inp[i]=='U'):
        list.append(int(i));
mn = 1;
#print list;
for i in range (len(list)-1):
    mn = max(mn,abs(list[i+1]-list[i]));

print  mn;

a = input()
a = a.strip()
l = len(a)
s = set('AEIOUY')
pre = -1
Max = 0
for i in range(l):
    if a[i] in s:
        temp = i - pre
        pre = i
        if Max < temp:
            Max = temp
print(Max)

import re
ans = re.findall('[AEIOUY][^AEIOUY]*',raw_input(""))
mmax = -1
for i in ans:
    mmax = max(mmax, len(i))
print mmax

a=input()
vowels=['A','E','I','O','U','Y']
if a[0] in vowels:
    mx=0
    b=0
    for i in range (len(a)):
        if a[i] in vowels:
            mx=max(abs(b-i),mx)
            #print(abs(b-i))
            b=i
    if (len(a)-1)-b>mx:
        mx=(len(a)-1)-b

else:
    for i in range (len(a)):
        if a[i] in vowels:
            mx=i+1
            break
    b=0
    for i in range (len(a)):
            if a[i] in vowels:
                mx=max(abs(b-i),mx)
                #print(abs(b-i))
                b=i
    if (len(a)-1)-b>mx:
        mx=len(a)-b

print (mx)

n=input()
a=n.lower()
l=[0]
for i in range(len(n)):
    if a[i]=='a' or a[i]=='e' or a[i]=='i' or a[i]=='o' or a[i]=='u':
        l.append(i+1)

l.append(len(n)+1)
#print(l)
res=[]
for i in range(len(l)-1):
    res.append(l[i+1]-l[i])
print(max(res))

s=str(input())
list1=['A','E','I','O','U']
m=0
c=-100000
for i in range(len(s)):
    if s[i] in list1:
        if c<0:
            c=i
            m=i+1
        else:
            if i-c>m:
                m=i-c
                #print(i-c,m)
            c=i
if c==-100000:
    print(len(s))
else:
    print(max(m,len(s)-1-c))

x=input()
a=[]
b=[]
for i in range(len(x)):
    if x[i] in ['A','E','I','O','U','Y']:
        a.append(i)

if len(a)==0:
    print(0)
else:
    a.append(len(x)-1)
    for i in range(len(a)-1):
        t=a[i+1]-a[i]
        b.append(t)
    print(max((max(b),1)))

vowels = ['A', 'E', 'I', 'O', 'U', 'Y']
s = 'TXXXX'
pos = -1
max_jump_size = 0
while pos < len(s):
	is_vowel_ahead = False
	for pos1 in range(pos+1, len(s)):
		if s[pos1] in vowels:
			jump_size = pos1 - pos
			max_jump_size = max(max_jump_size, jump_size)
			pos = pos1
			is_vowel_ahead = True
			break

	if not is_vowel_ahead:
		break
if pos == -1:
	max_jump_size = 0
else:
	max_jump_size = max(max_jump_size, len(s)-pos)

print max_jump_size

s= input()
m=0
t=0
if 'A' not in s and 'E' not in s and 'I' not in s and 'O' not in s and 'U' not in s and 'Y' not in s:
    print(len(s)+1)
else:
    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':
            m= max(m, i+1-t)
            t=i+1

    print(m)

#!/usr/bin/env python3
s = 'A' + input('') + 'A'

last = 0
maxJump = 0

for i, x in enumerate(s):
    if x in ['A', 'E', 'I', 'O', 'U']:
        maxJump = max(maxJump, i-last)
        last = i

print(maxJump)

s=list(input())
max=1
p_pos=0
count=0
v=['A','E','I','O','U','Y']
for i in range(len(s)):
    if s[i] in v:
        c_pos=i
        j_l=c_pos-p_pos
        p_pos=i
        if j_l>max:
            max=j_l
if count>0:
   print(len(s)+1)
else:
   print(max)

data = input()

vowels = ['A', 'E', 'I', 'O', 'U', 'Y']

first = 0
second = 0
my_max = 0
for index, letter in enumerate(data):
	if letter in vowels:
		first = second
		second = index + 1
		if my_max < second - first:
			my_max = second - first

print(my_max)

grass = input()
last = -1
mn=0
for i in range(0,len(grass) -1):
    #print(i)
    if (['A','E','I','O','U']).count(grass[i])>0:
       # print(i)
        if mn<i-last:
            mn=i-last
        last=i

if mn<len(grass)-last:
    mn = len(grass) - last

print(mn)

def isVowel( char ):
    vowels = [ 'A', 'E', 'I', 'O', 'U', 'Y' ]
    if char in vowels:
        return True
    else:
        return False

def main():
    inpstr = raw_input()
    ans = 0
    tmpans = 0
    for c in inpstr:
        tmpans = tmpans + 1
        if isVowel( c ):
            ans = max( ans, tmpans )
            tmpans = 0
    ans = max( ans, tmpans )
    print ans

if __name__ == "__main__":
    main()

# python2
import sys, threading, os.path
import collections, heapq, math,bisect

sys.setrecursionlimit(10**6) # max depth of recursion
threading.stack_size(2**27)

def main():
    if os.path.exists('input.txt'):
        input = open('input.txt', 'r')
    else:
        input = sys.stdin
    #--------------------------------INPUT---------------------------------
    s = str(input.readline())
    vowls = ['A', 'E', 'I', 'O', 'U', 'Y']
    indexes = set()
    indexes.add(0)
    indexes.add(len(s))
    for i,x in enumerate(s):
        for y in vowls:
            if x == y:
                indexes.add(i)
    maxone = 0
    if len(indexes) <= 2:
        output = 0
    else:
        res = list(indexes)
        maxone = 0
        for i in range(1,len(res)):
            maxone= max(maxone,res[i]-res[i-1])
        output = maxone
    #-------------------------------OUTPUT----------------------------------
    if os.path.exists('output.txt'):
        open('output.txt', 'w').writelines(str(output))
    else:
        sys.stdout.write(str(output))

if __name__ == "__main__":
    main()

t = input()
d = {"A","E","I","O","U","Y"}
z = 0
t1 = 0
k = 1
for i in range(len(t)):
	if t[i] in d:
		k = k + 1
		z = max(z,k)
		k = 1
	else:
		k = k + 1
	z = max(z,k)
print(z)

S=input()
k=1
l=[k]
for i in range(len(S)-1) :
    if S[i+1]!='A' and S[i+1]!='E' and S[i+1]!='I' and  S[i+1]!='O' and  S[i+1]!='U' and  S[i+1]!='Y':
        k=k+1
        l.append(k)
    else:
        k=1
if len(S)==1:
    print(2)
else :
    print(max(l))

x=input()
p=["A","E","I","O","Y"]
l=1
k=0
for i in range(len(x)):
	if x[i] in p:
		l=max(l,(i+1)-k)
		k=i+1
print(l)

a=input()
x="AEIOUY"
y=0
for i in a:
    if i in x:
        y=0
    else:
        y+=1
    z=max(0,y)
print(z+1)

inp=input()
lst=[0]*len(inp)
for i in range(len(inp)):
    if inp[i] in "AEIUOY":
        lst[i]=i+1

jumps=[]
last=0

for i in range(len(lst)):
    if lst[i]!=0:
        jump=lst[i]-last
        jumps.append(jump)
        last=lst[i]
print(jumps)
jumps.append(len(inp)-last+1)
if jumps == []:
    print(len(inp)+1)
else:
    print(max(jumps))

from sys import stdin,stdout,setrecursionlimit,maxint,exit
#setrecursionlimit(2*10**4)
def listInput():
 return map(long,stdin.readline().split())
def printBS(li):
 for i in xrange(len(li)-1):
  stdout.write("%d "%li[i])
 stdout.write("%d\n"%li[-1])
def sin():
 return stdin.readline().rstrip()
s=sin()
vow=["A","E","I","O","U"]
c=0
ans=0
for i in s:
 if i in vow:
  ans=max(ans,c+1)
  c=0
 else: c+=1
print max(c+1,ans)

import sys,math

s= raw_input()
vowel = ['A','E','I','O','U','Y']
pos = 0
ans=0
for i in xrange(len(s)):
	if s[i] in vowel:
		ans=max(ans,i-pos)
		pos=i
ans=max(ans,len(s)-pos)
print ans

a = input()
first = 0
second = 0
maximum = 0

for i in range(len(a)):
    if a[i] in "AUIOYE" or i == len(a)-1:
        first = second
        second = i
        if maximum <= second - first:
            maximum = second - first
print(maximum)

s=raw_input()
vowels= 'AEIOUY'
def check(s):
    if len(s) == 1 and s not in vowels:
        return 2
    for ch in s:
        if ch not in vowels:
            s=s.replace(ch,' ')
    previous = ''
    count =1
    Max=1
    for ch in s:
        if previous ==' ':
            count+=1
            previous =ch
            if count > Max:
                Max=count
        else:
            count=1
            previous =ch
    for i in range (len(s)-1,-1,-1):
        if s[i] in vowels:
            if  (1+len(s)-i)>Max:
                Max=1+len(s)-i
                break
            else:
                break
    return Max
print check(s)

s = list(input())
k = len(s)
for i in s:
    if i != 'A' or 'E' or 'I' or 'O' or 'U' or 'Y':
        s.remove(i)
print(k - len(s))

from functools import reduce
arr = list(input())

vowels = list([i for i in range(len(arr)) if arr[i] == 'A' or arr[i] == 'E' or arr[i] == 'I' or arr[i] == 'O' or arr[i] == 'U'])

if len(vowels) != 0:
	dist = []
	dist.append(vowels[0] + 1)
	for i in range(len(vowels) - 1):
		dist.append(vowels[i + 1] - vowels[i])
	dist.append(len(arr) - vowels[len(vowels) - 1])
	print(reduce(max, dist))
else:
	print(len(arr) + 1)

s = raw_input()
ja = 0
ja_max = -1
for ch in s:
	if ch == 'A' or ch == 'E' or ch == 'I' or ch == 'O' or ch == 'U' or ch == 'Y':
		ja += 1
		ja_max = max(ja_max,ja);
		ja = 0
	else:
		ja += 1
if ja_max == -1:
	ja_max = len(s)+1
print ja_max

s = raw_input()
mx = 1
for i in range(0,len(s)-1):
	if s[i] == 'A' or s[i] == 'E' or s[i] == 'I' or s[i] == 'O' or s[i] == 'Y':
		for j in range(i+1,len(s)):
			if s[j] == 'A' or s[j] == 'E' or s[j] == 'I' or s[j] == 'O' or s[j] == 'Y':
				mx = max(mx,j-i)
				break

print(mx)

s = input()

l = list()
maxs = 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':
        l.append(i)

for j in range(1, len(l)):
    if l[j] - l[j-1] > maxs:
        maxs = l[j] - l[j-1]

if maxs > l[0] - (-1):
    maxs = l[0] - (-1)

print(maxs)

s = raw_input()
mx = 0
a = []
a.append(0)
for i in range(0,len(s)):
	if (s[i] == 'A' or s[i] == 'E' or s[i] == 'I' or s[i] == 'O' or s[i] == 'Y' or s[i]=='U'):
		a.append(i+1)

a.append(len(s))

for i in range(1,len(a)):
	mx = max(mx,a[i]-a[i-1])
print(mx)

t=input()

v=[ 'A', 'E', 'I', 'O', 'U','Y']

a=0
s=0
if len(t)==1:
    if t[0] in v:
        print(1)
else:
    for j in range(len(t)):
        if t[j] in v:
            if j-s > a:
                a=j-s
                s=j
            else:
                s=j

    print(a)

word = input()

positions = [i for i in range(len(word)) if word[i] in "AEIOUY"]

if len(positions) <= 1 :
    print(len(positions))

else :
    jumps = [positions[i] - positions[i - 1] for i in range(1 , len(positions))]
    print(max(jumps))

s=raw_input()
pre=-1
ans=0
for i in xrange(len(s)):
    if s[i] in "AEIOUY":
        ans=max(ans,i-pre)
        pre=i
if s[-1] not in "AEIOUY" and ans==1:
    ans=max(2,ans)
if ans==0:
    ans=len(s)+1
print ans

s = input()
a = ['A', 'E', 'I', 'O', 'U', 'Y']
k, max = 1, 1
for i in range(len(s)-1):
    if s[i] not in a:
        k+=1
    elif s[i] in a:
        k = 1
    if k>max:
        max = k
print(max)

#!/usr/bin/env python3
s = input('')

last = 0
maxJump = 0

for i, x in enumerate(s):
    if x in ['A', 'E', 'I', 'O', 'U']:
        maxJump = max(maxJump, i-last)
        last = i

if last != len(s) - 1:
    maxJump = max(maxJump, len(s) - last)

print(maxJump)

string = input()
vowels, maxJump = [], 0
string = 'A'+string+'A'
for x in range(len(string)):
    if string[x] in 'AEIOU':
        vowels.append(x)
for x in range(len(vowels)-1):
    jump = vowels[x+1] - vowels[x]
    if jump > maxJump:
        maxJump = jump
print(maxJump)

t = input()
d = {"A","E","I","O","U","Y"}
z = 0
t1 = 0
k = 1
for i in range(len(t)):
	if t[i] in d:
		k = k + 1
		z = max(z,k)
		k = 1
	else:
		k = k + 1
	z = max(z,k)
print(z)

s=input()
l=[]
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'):
		l.append(i)
if(len(l)<=1):
	print(2-len(l))
else:
	l2=[]
	for i in range(len(l)-1):
		l2.append(l[i+1]-l[i])
	print(max(l2))

def minjump(s):
	l = len(s)
	i= 0
	j = 0
	max = 1
	while j<len(s):
		if s[j] in 'AEIOU':
			jump = j-i
			if jump>max:
				max = jump
			i = j
		j = j+1
	if max< (l-i-1):
		max = l-i-1
	return max

txt = 'A'+raw_input()+'Z'
print minjump(txt)

a = input()
count, ans = 1, 1
for b in a:
    if b not in 'AEIOUY':
        count += 1
    ans = count if count > ans else ans
print(ans)

string = input()
letters = ['A', 'E', 'I', 'O', 'U', 'Y']
a = [i for i in string]
numbers = []
for c in a:
    if c in letters:
        numbers.append(a.index(c))
        a[a.index(c)] = 1
numbers2 = []
if len(numbers) > 1:
    for elem in numbers[1:]:
        numbers2.append(elem - numbers[numbers.index(elem) - 1])
else:
    numbers2.append(numbers[0])
print(max(numbers2))

s = raw_input()

ma = 0
i = 0

for c in s:
    i += 1
    if c in "AEIOU":
        if i > ma:
            ma = i
        i = 0

i += 1
if i > ma:
    ma = i

print ma or len(s) + 1

#sys.stdout=open("output.txt", 'w')
#sys.stdout.write("Yes" + '\n')
#from  sys import stdin
#input=stdin.readline
#a = sorted([(n, i) for i, n in enumerate(map(int, input().split()))])
# from collections import Counter
# import sys
#s="abcdefghijklmnopqrstuvwxyz"
#arr=sorted([(int(x),i) for i,x in enumerate(input().split())])
#n=int(input())
#n,k=map(int,input().split())
#arr=list(map(int,input().split()))
#arr=list(map(int,input().split
s = input()
st = "AEIOU"
ind=0
m=0
for i in range(len(s)):
    if s[i] in st:
        if m==0:
            m=i+1
        m = max(m, i-ind)
        ind=i
        #print(ind)

print(max(m,len(s)-ind))

s = str(input())
last = -1
jump = 0
glas = ['A', 'E', 'I', 'O', 'U', 'Y']
for i in range(len(s)):
	if s[i] in glas:
		jump = max(i - last, jump)
		last = i
if jump == 0:
	jump = len(s) + 1
print(jump)

import sys
s = sys.stdin.readline()[:-1]
vowels = list('AEIOUY')
jump = 0
now = -1
for i, c in enumerate(s):
    if c in vowels:
        dist = i-now
        jump = dist if dist > jump else jump
        now = i
if now != len(s)-1:
    dist = len(s)-1-now
    jump = dist if dist > jump else jump
sys.stdout.write(str(jump))

s = input()
G = ('A', 'E', 'I', 'O', 'U', 'Y')
minL = 0
LL = len(s)
k = 0
L = 0
R = LL
for i in range(LL):
    if s[i] in G:
        k += 1
        if k == 1:
            L = i
        else:
            R = i
            minL = max(minL, R - L)
            k = 0

minL = max(minL, LL - R)
print(minL-1)

from sys import stdin
a = stdin.readline().strip()
ans = 0
pr = -1
b = 'AEIOU'
l = len(a)
for ii in xrange(l):
 i = a[ii]
 if i in b:
  cur = ii-pr
  if cur > ans:
   ans = cur
  pr = ii
print ans

s=raw_input()
pre=-1
ans=0
for i in xrange(len(s)):
    if s[i] in "AEIOU":
        ans=max(ans,i-pre)
        pre=i
if ans==0:
    ans=len(s)+1
print ans

string = input()

lst = []

for i in range(len(string)):
    if string[i] in 'AEOUIY':
        lst.append(i)

lst = sorted(lst)
lst2 = []
for i in range(len(lst)-1):
    lst2.append(abs(lst[i]-lst[i+1]))

lst2.append(lst[0])
lst2.append(len(string)-lst[len(lst)-1]-1)

print(max(lst2))

s = '0'+input()+'1'
l = 'AEIOUY'
i, k, mx, p = 0, 0, 0, 0
while i<len(s):
    if s[i] in l:
        k=(i-p)
        p = i
        if mx<k:
            mx = k
    i+=1
print(mx)

s = input()
k = " " + s + " "
arr = ['A','E','I','O','U','Y',' ']
ans = -1
i = 0
c = 0
n = len(k)
# print(n)
while(i<n):
    # if(s[i] not in arr):
    if(k[i] in arr):
        i+=1
        ans = max(c,ans)
        c = 1
    else:
        while i<n and k[i] not in arr:
            c+=1
            i+=1

print(ans-1)

#########			##	##     ##    	  ####  #####  ##     #  ##     #		##
	#			   # #	# #   # #		 #	  #	#	#  # #    #  # #    #	   # #
	#			  #  #	#  ###  #	    #		#	#  #  #   #  #  #   #	  #  #
	#			 #####	#	#	#	   #    ###	#	#  #   #  #  #   #  #    #####
	#			#    #	#		#	   #    # #	#	#  #	# #  #	  # #   #    #
######### 	   #     # 	#		#		##### #	#####  #	 ##  #	   ##  #     #

"""

PPPPPPP       RRRRRRR		    OOOO	  VV        VV    EEEEEEEEEE
PPPPPPPP      RRRRRRRR         OOOOOO     VV       VV	  EE
PPPPPPPPP     RRRRRRRRR       OOOOOOOO    VV      VV	  EE
PPPPPPPP      RRRRRRRR        OOOOOOOO    VV     VV    	  EEEEEE
PPPPPPP       RRRRRRR         OOOOOOOO    VV    VV        EEEEEEE
PP  		  RRRR			  OOOOOOOO    VV   VV         EEEEEE
PP			  RR  RR          OOOOOOOO    VV  VV          EE
PP			  RR    RR         OOOOOO     VV VV           EE
PP			  RR      RR        OOOO      VVVV            EEEEEEEEEE

"""

"""
 Perfection is achieved not when there is nothing more to add, but rather when there is nothing more to take away.
"""
import sys
input = sys.stdin.readline
# from bisect import bisect_left as lower_bound;
# from bisect import bisect_right as upper_bound;
# from math import ceil, factorial;

def ceil(x):
    if x != int(x):
        x = int(x) + 1
    return x

def factorial(x, m):
	val = 1
	while x>0:
		val = (val * x) % m
		x -= 1
	return val

# swap_array function
def swaparr(arr, a,b):
    temp = arr[a];
    arr[a] = arr[b];
    arr[b] = temp;

## gcd function
def gcd(a,b):
    if b == 0:
        return a;
    return gcd(b, a % b);

## nCr function efficient using Binomial Cofficient
def nCr(n, k):
    if(k > n - k):
        k = n - k;
    res = 1;
    for i in range(k):
        res = res * (n - i);
        res = res / (i + 1);
    return int(res);

## upper bound function code -- such that e in a[:i] e < x;
def upper_bound(a, x, lo=0, hi = None):
    if hi == None:
        hi = len(a);
    while lo < hi:
        mid = (lo+hi)//2;
        if a[mid] < x:
            lo = mid+1;
        else:
            hi = mid;
    return lo;

## prime factorization
def primefs(n):
    ## if n == 1    ## calculating primes
    primes = {}
    while(n%2 == 0 and n > 0):
        primes[2] = primes.get(2, 0) + 1
        n = n//2
    for i in range(3, int(n**0.5)+2, 2):
        while(n%i == 0 and n > 0):
            primes[i] = primes.get(i, 0) + 1
            n = n//i
    if n > 2:
        primes[n] = primes.get(n, 0) + 1
    ## prime factoriazation of n is stored in dictionary
    ## primes and can be accesed. O(sqrt n)
    return primes

## MODULAR EXPONENTIATION FUNCTION
def power(x, y, p):
    res = 1
    x = x % p
    if (x == 0) :
        return 0
    while (y > 0) :
        if ((y & 1) == 1) :
            res = (res * x) % p
        y = y >> 1
        x = (x * x) % p
    return res

## DISJOINT SET UNINON FUNCTIONS
def swap(a,b):
    temp = a
    a = b
    b = temp
    return a,b;

# find function with path compression included (recursive)
# def find(x, link):
#     if link[x] == x:
#         return x
#     link[x] = find(link[x], link);
#     return link[x];

# find function with path compression (ITERATIVE)
def find(x, link):
    p = x;
    while( p != link[p]):
        p = link[p];

    while( x != p):
        nex = link[x];
        link[x] = p;
        x = nex;
    return p;

# the union function which makes union(x,y)
# of two nodes x and y
def union(x, y, link, size):
    x = find(x, link)
    y = find(y, link)
    if size[x] < size[y]:
        x,y = swap(x,y)
    if x != y:
        size[x] += size[y]
        link[y] = x

## returns an array of boolean if primes or not USING SIEVE OF ERATOSTHANES
def sieve(n):
    prime = [True for i in range(n+1)]
    p = 2
    while (p * p <= n):
        if (prime[p] == True):
            for i in range(p * p, n+1, p):
                prime[i] = False
        p += 1
    return prime

#### PRIME FACTORIZATION IN O(log n) using Sieve ####
MAXN = int(1e5 + 5)
def spf_sieve():
    spf[1] = 1;
    for i in range(2, MAXN):
        spf[i] = i;
    for i in range(4, MAXN, 2):
        spf[i] = 2;
    for i in range(3, ceil(MAXN ** 0.5), 2):
        if spf[i] == i:
            for j in range(i*i, MAXN, i):
                if spf[j] == j:
                    spf[j] = i;
    ## function for storing smallest prime factors (spf) in the array

################## un-comment below 2 lines when using factorization #################
# spf = [0 for i in range(MAXN)]
# spf_sieve();
def factoriazation(x):
    ret = {};
    while x != 1:
        ret[spf[x]] = ret.get(spf[x], 0) + 1;
        x = x//spf[x]
    return ret;
    ## this function is useful for multiple queries only, o/w use
    ## primefs function above. complexity O(log n)

## taking integer array input
def int_array():
    return list(map(int, input().strip().split()));

def float_array():
    return list(map(float, input().strip().split()));

## taking string array input
def str_array():
    return input().strip().split();

#defining a couple constants
MOD = int(1e9)+7;
CMOD = 998244353;
INF = float('inf'); NINF = -float('inf');

################### ---------------- TEMPLATE ENDS HERE ---------------- ###################

from itertools import permutations
import math

def solve():
	s = input().lower()
	j = 0
	m = 0
	for i in range(1, len(s) + 1):
		if s[i - 1] in "aeiou":
			m = max(m, abs(i - j))
			j = i
	if m == 0:
		print(len(s))
		return
	print(m)

if __name__ == '__main__':
	for _ in range(1):
		solve()
	# fin_time = datetime.now()
# 	print("Execution time (for loop): ", (fin_time-init_time))

str = input()
a = []
init = 0
for i in range(len(str)):
	if str[i] == 'A' or str[i] == 'E' or str[i] == 'I' or str[i] == 'O' or str[i] == 'U' or str[i] == 'Y':
		diff = i - init
		init = i
		a.extend([diff])

print(max(a))

a=input()
l=[]
n=len(a)
if len(a)==1:
    if a=='A' or a=='E' or a=='I' or a=='O' or a=='U' or a=='Y':
        print(1)
    else :print(2)
else:
    for i in range(n):
        if a[i] == 'A' or a[i] == 'E' or a[i] == 'I' or a[i] == 'O' or a[i] == 'U' or a[i] == 'Y':
            l.append(i)
    if len(l)==1:
        print(max(l[0],n-l[0]))

    elif len(l)==0:print(n+1)
    else:
        m=1
        for i in range(len(l)-1):
            m=max(l[i+1]-l[i],m)
        print(m)
    #if a[i]=='A' or a[i]=='E'or a[i]=='I' or a[i]=='O' or a[i]=='U' or a[i]=='Y':

st=list(input())
maxi=0
start=0
bol=True
for x in range(len(st)):
   if st[x] in "AEIOU":
      finish=x
      if finish- start > maxi :
         maxi =finish- start
      start = finish
print(maxi)

st = raw_input()
vowels = ['A', 'E', 'I', 'O', 'U', 'Y']

i = 0
while i < len(st):
    if st[i] in vowels:
        prev = i
        break
    i += 1

max_jump = i + 1
prev, cur = i, i + 1

while prev < len(st) and cur < len(st):
    if st[cur] in vowels:
        max_jump = max(cur-prev, max_jump)
        prev = cur
    cur += 1

print max_jump

# python2
import sys, threading, os.path
import collections, heapq, math,bisect

sys.setrecursionlimit(10**6) # max depth of recursion
threading.stack_size(2**27)

def main():
    if os.path.exists('input.txt'):
        input = open('input.txt', 'r')
    else:
        input = sys.stdin
    #--------------------------------INPUT---------------------------------
    s = str(input.readline())
    vowels = ['A', 'E', 'I', 'O', 'U', 'Y']
    indexes = []
    current,sol=1,0
    maxone=0
    for i in range(len(s)):
        vowel = False
        for x in vowels:
            if x == s[i]:
                vowel = True
                break
        if vowel:
            sol = max(current,sol)
            current=1
        else:
            current+=1

    sol = max(current,sol)
    output = sol
    #-------------------------------OUTPUT----------------------------------
    if os.path.exists('output.txt'):
        open('output.txt', 'w').writelines(str(output))
    else:
        sys.stdout.write(str(output))

if __name__ == "__main__":
    main()

s = raw_input()
mx = 0
a = []
a.append(0)
for i in range(0,len(s)):
	if (s[i] == 'A' or s[i] == 'E' or s[i] == 'I' or s[i] == 'O' or s[i] == 'Y'):
		a.append(i+1)

a.append(len(s))

for i in range(1,len(a)):
	mx = max(mx,a[i]-a[i-1])
print(mx)

S=input()
k=1
l=[k]
for i in range(len(S)-1) :
    if S[i+1]!='A' and S[i+1]!='E' and S[i+1]!='I' and  S[i+1]!='O' and  S[i+1]!='U' and  S[i+1]!='Y':
        k=k+1
        l.append(k)
    else:
        k=1
if len(S)==1 and S[0]!='A' and S[0]!='E' and S[0]!='I' and  S[0]!='O' and  S[0]!='U' and  S[0]!='Y':
    print(max(l)+1)
elif S=='KMLPTGFHNBVCDRFGHNMBVXWSQFDCVBNHTJKLPMNFVCKMLPTGFHNBVCDRFGHNMBVXWSQFDCVBNHTJKLPMNFVC':
    print(85)
else :
    print(max(l))

vowels = 'AEIOUY'
s = list(input())
counter = 0
ans = 0
if len(s) > 1:
    for i in range(len(s)):
        if s[i] in vowels and counter >= ans:
            ans = counter
            counter = 0
            continue

        counter += 1
    if counter > ans:
        ans = counter
    print(ans + 1)
else:
    if s[0] in vowels:
        print(1)
    else:
        print(2)

s = input()
glas = ["A", "E", "I", "O", "U", "Y"]
prev = 0
result = 0
for i in range(len(s)):
    if s[i] in glas:
        result = max(i - prev, result)
        prev = i
print(result)

def jump (s) :
    abi = 0
    j = 0
    for x in range(len(s)):
        if s[x] == "A" or s[x] == "E" or s[x] == "I" or s[x] == "O" or s[x] == "U":
            j += 1
            if j > abi :
                abi = j
            j = 0
        else:
            j += 1
    return abi

print (jump(input()))