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.

#include <iostream>
#include <string>

using namespace std;

int main()
{
    int i,ma=0,n=0,j=0;
    string s;
    cin >>s;
    for (i=0;i<s.length();i++)
    {
        if(s[i]=='A'||s[i]=='O'||s[i]=='U'||s[i]=='E'||s[i]=='I'||s[i]=='Y')
        {
            n=i+1-j;
            j=i+1;
        }
        if (n>ma)
            ma=n;
    }
    if(s.length()+1-j>ma)
        ma=s.length()+1-j;
    if (ma==0)
        ma=s.length()+1;
    cout <<ma;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string s;

    cin >> s;

    int m=1,cnt=1;

    for(int i = 0; i < s.length(); i++)
    {
        if(s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y')
            cnt = 1;

        else    cnt++;

         m = max(m,cnt);
    }

    cout << m << endl;

    return 0;
}

#include<bits/stdc++.h>
using namespace std;
char s[128];
int n;
int sol;
int main(){
    cin >> (s + 1);
    int l = strlen(s + 1);
    for(int i = 1; i <= l; i ++){
        if(s[i] == 'A' || s[i] =='E' || s[i] =='I' || s[i] =='O' || s[i] =='U' || s[i] =='Y'){
            sol = max(i - n, sol);
            n = i;
        }
    }
    sol = max(l + 1 - n, sol);
    cout << sol;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
string s;
int sum=-1,m;
int main()
{
	cin>>s;
	int len=s.size();
	for(int i=0;i<len;i++)
		if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
		{
			m=max(m,i-sum);
			sum=i;
		}
	cout<<max(m,len-sum);
	return 0;
}

#include <iostream>

using namespace std;

int main()
{
    string a;
    while(cin >> a)
    {
        int l = a.length();
        int cnt = 0;
        int ans = 0;
        for(int i = 0;i<l;i++)
        {
            cnt++;
            if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U'||a[i]=='Y')
            {
                ans= max(ans,cnt);
                cnt=0;
            }
        }
        ans=max(ans,cnt+1);
        cout << ans << endl;
    }
    return 0;
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string str;

    int i,j,countt=1,l,maxx=0,flag=0;

    vector<int >jump;

    cin >> str;

    l=str.size();
    if(l==1)
    {
        if(str[0]=='A' || str[0]=='E' || str[0]=='I' || str[0]=='O' || str[0]=='U' || str[0]=='Y')
            cout <<"1"<<endl;
        else
            cout <<"2"<<endl;
        return 0;
    }

    for(i=0; i<l; i++)
    {

        if(str[i]!='A' && str[i]!='E' && str[i]!='I' && str[i]!='O' && str[i]!='U' && str[i]!='Y')
        {

            for(j=i+1; j<l; j++)
            {
                if(str[j]=='A' || str[j]=='E' || str[j]=='I' || str[j]=='O' || str[j]=='U' || str[j]=='Y')
                {
                    jump.push_back(countt);
                    //cout << countt <<endl;
                    countt=1;
                    break;

                }
                else
                {
                    countt++;
                }
            }

        }
        if(countt > 1)
        {
            jump.push_back(countt);
            break;
        }

    }

    for(i=0; i<jump.size(); i++)
    {
        if(jump[i] > maxx)
        {
            maxx=jump[i];
        }
    }
    cout << maxx+1 <<endl;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
   string s;
   cin >> s;
   int i,max=0;
   vector<int>v;
   v.push_back(0);
   for(i=0;i<s.length();i++)
   {
   	if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
   	v.push_back(i+1);
   }
   v.push_back(s.length()+1);
   for(i=1;i<v.size();i++){
   	if(v[i]-v[i-1]>max)
   	max=v[i]-v[i-1];
   }
   cout << max;

    return 0;
}

#include <bits/stdc++.h>
#define LL long long
#define inf 2147483647
#define N 105
using namespace std;
int f[N], ans;
char s[N];
int pd(char a){
	if(a == 'A' || a == 'E' || a == 'I' || a == 'O' || a == 'U' || a == 'Y') return 1;
	return 0;
}
int main(){
	int i, j, n, x;
	memset(f, 1, sizeof(f));
	scanf("%s", s + 1);
	n = strlen(s + 1);
	x = 0;
	for(i = 1; i <= n; i++){
		if(pd(s[i])){
			ans = max(ans, i - x);
			x = i;
		}
	}
	printf("%d", max(ans, n + 1 - x));
	return 0;
}

#include <bits/stdc++.h>
using namespace std;
const string wovs="AEIOUY";
string s;
int main(){
	int lst=-1,res=0;
	cin>>s;
	for(int i=0;i<s.length();i++)
	    if(wovs.find(s[i])!=string::npos){
	    	res=max(res,i-lst);
	    	lst=i;
		}
	res=max(res,int(s.length())-lst);
	printf("%d\n",res);
	return 0;
}

#include <bits/stdc++.h>
#define N 1234
using namespace std;

void solve()
{
	string s;
	cin>>s;
	int maxi = 0;
	int length = 0;
	for(int i = 0;i<s.length();i++)
	{
		if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
		{
			maxi = max(maxi, length+1);
			length = 0;
		}
		else
		{
			length++;
		}
	}
	maxi = max(length+1,maxi);
	cout<<maxi;

}

int main()
{
	//to make I/O faster
	ios::sync_with_stdio(0);
	cin.tie(0);
	/*
	int t;
	cin>>t;

	while(t--)
	{
		solve();
	}*/
	solve();
}

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
string s;
int check(int i){
    if(s[i]!='A'&&s[i]!='E'&&s[i]!='I'&&s[i]!='O'&&s[i]!='U'&&s[i]!='Y') return 0;
    return 1;
}
int main(){
    cin>>s;
    int l=s.size();
    int i=0,maxx=0;
    while(!check(i)&&i<s.size()) i++;
    maxx=i+1;
    for(int j=i+1;j<s.size();j++){
        if(check(j)) maxx=max(maxx,j-i),i=j;
    }
    maxx=max(maxx,l-i);
    cout<<maxx;
    return 0;
}

#include <bits/stdc++.h>

// Shabdan Batyrkulov

using namespace std;

#define MAX 1007
#define pb push_back
#define fr first
#define sc second
#define mk make_pair
#define ll long long
#define ld long double

const long long N = (int)1e6 + 7;
const int INF = (int)1e9 + 7;
const int mod = (int)1e9 + 7;

map <char, int> mp;

inline void solve () {
        string s; cin >> s;
        mp['A'] = mp['E'] = mp['I'] = mp['O'] = mp['U'] = mp['Y'] = 1;
        s = ' ' + s;
        int mx = 0;
        int prev = 0;
        for (int i = 1; i < s.size(); i++) {
                if (mp[s[i]]) {
                        mx = max(i - prev, mx);
                        prev = i;
                }
        }
        mx = max(mx, (int)s.size() - prev);
        if (mx == 0) {
                cout << s.size() + 1;
        } else {
                cout << mx;
        }
}

int main () {
        int test = 1; // scanf ("%d", &test);
        while (test--) {
                solve();
        }
}

#include <iostream>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<queue>
#include<vector>
using namespace std;
const int MAX=3e5+5;
const int INF=0x3f3f3f3f;
typedef long long ll;
typedef pair<int,int> pii;
string s;
map<char,int> mp;
int ans;
int main()
{
    int i,j,k,n,m,t=-1,f=0;
    cin>>s;
    for(i=0;i<s.size();i++){
        if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y'){
            ans=max(ans,i-t);
            t=i;
        }
    }
    if(t!=i) ans=max(ans,i-t);
    cout<<ans<<endl;
    return 0;
}

#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
	char a[101];
	cin >> a;
	int i = 0;
	int k = 0, K = 0;
	while (a[i])
	{
		k++;
		if (a[i] == 'A' || a[i] == 'E' || a[i] == 'I' || a[i] == 'O' || a[i] == 'U' || a[i] == 'Y')
		{
			if (k >= K)
			{
				K = k;
			}
			k = 0;
		}
		i++;

	}
	if (++k >= K) K = k;

	cout << K << endl;

	return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main(){
    string s, vo = "AUIOEY";
    cin >> s;
    int ans = 1, pos = -1;
    for (int i = 0; i < s.length(); i++){
        if (vo.find(s[i]) != -1) { ans = max(i - pos, ans); pos = i; }
    }
    cout << max(ans, (int)s.length() - pos);
    return 0;
}

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
using namespace std;
char s;
int sum=1,num;
int main()
{
	while(cin>>s)
	{
		if(s=='A'||s=='E'||s=='I'||s=='O'||s=='U'||s=='Y')
		{
			num=max(sum,num);
			sum=1;
		}
		else
		{
			sum++;
		}
	}
	num=max(sum,num);
	cout<<num<<endl;
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
cin >> a;
int n = a.size(),k=0;
vector<int>v1;
for(int i = 0; i < n; i++)
{
    char b = a[i];
    if(b=='A'||b=='E'||b=='I'||b=='O'||b=='U'||b=='Y')
        v1.push_back(i+1);
}
v1.push_back(n+1);
v1.push_back(0);
sort(v1.begin(),v1.end());
int ans = -1;
auto it1 = v1.begin(),it2 = v1.begin()+1;
for(; it2 != v1.end(); it1++,it2++)
{
//    cout << v1[i+1] << " "<< v1[i] << " " <<ans << endl;
    ans = max((*it2 - *it1),ans);

}
cout << ans;
return 0;
}

#include <bits/stdc++.h>
using namespace std;

typedef  long long ll;
ll n,m;
const ll N=200001;

vector<ll> v;

vector<pair<ll,ll> > vv;
map<char,ll> my;
priority_queue<ll,vector<ll>,greater <ll> > q,q1;
ll t[N];

int main() {

ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);

ll i,j,a,b,c=0,d,k,x;
//priority_queue q1;
char cc;
string s;
cin>>s;k=1;x=-1;
for(i=0;i<s.size();i++)
{ string str="AEIOUY";
    std::size_t found = str.find(s[i]);
  if (found==std::string::npos)
 k++;

else {c=max(c,k);k=1;x=i;}
}
n=s.size();
cout<<max(c,n-x);
//cout<<x<<endl;

    return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include <iostream>
#include <ctime>
using namespace std;

//int n;
//int *a, *b;
//clock_t q, w;
//
//void made()
//{
//	cin >> n;
//	a = new int[n]; b = new int[n];
//	for (int i = 0; i<n; i++){ a[i] = rand() % 150; b[i] = a[i]; }
//}
//
///*template<class T> void Merge(T const *const A, int const nA, T const *const B, int const nB, T *const C)
//{ int a(0),b(0);
//while (a+b<nA+nB)
//{if((b>=nB)||((a<nA)&&(A[a]<=B[b])))
//{C[a+b]=A[a];
//++a;}
//else {C[a+b]=B[b];++b}
//}
//
//}
//
//template<class T> void MergeSort(T *const A, int const n)
//{if(n<2) return;
//if (n==2)
//{if(A[0]>A[1]) {T const t(A[0]);A[0]=A[1];A[1]=t;}
//return;
//}
//MergeSort(A,n/2);
//MergeSort(A+n/2,n-n/2);
//T *const B(new T[n]);
//Merge(A,n/2,A+n/2,n-n/2,B);
//for(int i=0;i<n; ++i)A[i]=B[i];
//}
//*/
//
//
//template<class T> void Dowm(T *const heap, int i, int const n)
//{
//	int nMax = i;
//	T const val = heap[i];
//	while (true)
//	{
//		int cn = i * 2 + 1;
//		if ((cn<n) && (heap[cn]>val)) nMax = cn;
//		cn++;
//		if ((cn<n) && (heap[cn]>heap[nMax])) nMax = cn;
//		if (nMax == i) break;
//
//		heap[i] = heap[nMax];
//		heap[nMax] = val;
//		i = nMax;
//	}
//}
//
//
//template<class T> void bubble(T *const A, int const n)
//{
//	for (int i = 0; i<n; i++)
//	{
//		T t;
//		for (int j = 1; j<n; j++)
//		{
//			if (A[j]<A[j - 1])  t = A[j]; A[j] = A[j - 1]; A[j - 1] = t;
//		}
//	}
//}
//
//template<class T> void HeapSort(T *const heap, int n)
//{
//	for (int i = n / 2 - 1; i >= 0; --i) Down(heap, i, n);
//
//	while (n>1)
//	{
//		--n;
//		T const firstel = heap[0];
//		heap[0] = heap[n];
//		heap[n] = firstel;
//		Down(heap, 0, n);
//	}
//}
//
//
//
//void main()
//{
//	made();
//	q = clock();
//	bubble(b, n);
//	w = clock();
//	cout << w - q << endl;
//
//	q = clock();
//	//MergeSort<int>(*a, n);
//	HeapSort<int>(a, n);
//	w = clock();
//	cout << w - q << endl;
//}
//

void main()
{
	int k=0,m=1,i=0,l; char a[101];

	gets(a);
	l = strlen(a);

	for (; i <= l; i++)
	{
		if ((a[i] != 'A') && (a[i] != 'E') && (a[i] != 'I') && (a[i] != 'O') && (a[i] != 'U') && (a[i] != 'Y')) k++;
		else {  k++; if (m < k) m = k; k = 0; }
	}
	if (m < k) m = k;
	cout << m;

/*for (int i = 0; i < 100; i++)
	{
		cin >> a[i];
		i++;
	}*/
	/*while (b != "/0")
	{
		cout << b;
		a[i] = b;
		i++;
	}*/

}

#include<bits/stdc++.h>
using namespace std;
string p;
int a=-1,m;
int main()
{
    cin>>p;
    for(int x=0;x<p.size();x++)
        if(p[x]=='A'||p[x]=='E'||p[x]=='I'||p[x]=='O'||p[x]=='U'||p[x]=='Y')//如果是元音
            m=max(m,x-a),a=x;
    cout<<max(m,(int)p.size()-a);
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
char a[110];
int main(){
	int num=0,max=0;
	cin>>a;
	for(int i=0;i<=strlen(a)-1;i++){
		num++;
		if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U'||a[i]=='Y'){
			if(num>=max)max=num;
			num=0;
		}
		if(i==strlen(a)-1){
			num+=1;
			if(num>=max)max=num;
			num=0;
		}
	}
	cout<<max;
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    long long l=1,max=0;
    getline(cin,s);
    for(int i=0;i<=s.length()-1;i++)
	{
        if(s[i]!='A'&&s[i]!='Y'&&s[i]!='E'&&s[i]!='I'&&s[i]!='O'&&s[i]!='U')
          l++;
        else
		  l=1;
        if(l>max)
		  max=l;
    }
    cout<<max;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,m;
    string s;
    cin>>s;
    s[s.size()]='A';
    m=-1;int d=0;
    for(int i=0;i<s.size()+1;i++)
    {
        if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
        {
            d=max(d,i-m);
            m=i;
        }
    }
    cout<<d<<endl;
    return 0;
}

#include <stdio.h>
#include <iostream>
#include <unordered_set>
#include <unordered_map>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <algorithm>
#include <cstdlib>
#include <math.h>       /* sqrt */ //so what
//#include <quadmath.h>
#include <iomanip>
#include <sstream>
#include <iterator>
using namespace std;

void GrasshopperAndtheString() {
    string lawn; cin >> lawn;
    int maxLen = 0;
    int currentLen = 0;
    for (int i = 0; i< lawn.size(); ++i ) {
        if ( lawn[i] == 'A' ||
                lawn[i] == 'E' ||
                lawn[i] == 'I' ||
                lawn[i] == 'O' ||
                lawn[i] == 'U' ||
                lawn[i] == 'Y' ) {
            maxLen = max(maxLen, currentLen);
            currentLen = 0;
        } else {
            currentLen ++;
        }
    }
    maxLen = max(maxLen, currentLen);
    maxLen ++;
    cout << maxLen;
}

int main() {
    GrasshopperAndtheString();

}

#include <bits/stdc++.h>
using namespace std;
string s;
char c[10]={'A','E','I','O','U','Y'};
int main(){
//	freopen("a.txt","r",stdin);
	cin>>s;
	// 只能搞AEIOUY
	int last=-1;
	int res=1;
//	int flag=0;
	for(int i=0;i<s.length();i++){
		for(int j=0;j<6;j++){
			if(s[i]==c[j]){
//				flag=1;
				res=max(res,i-last);
				last=i;
				break;
			}
		}
	}
	int len=s.length();
	res=max(res,len-last);
//	if(flag==0)res=s.length()+1;
	cout<<res<<endl;
	return 0;
}

#include<bits/stdc++.h>

using namespace std;

int main()
{
    string s;
    cin>>s;
    vector <int> h;
    int c=0;
    int max=0;
    int e=0;
    h.push_back(e-1);
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
        {
           h.push_back(i);
        }
    }
    h.push_back(s.size());
    int y=h.size();
    //cout<<h[y-1]<<endl;
    if(h.size()!=2)
    {
        for(int i=0;i<h.size()-1;i++)
        {
            int x=h[i+1]-h[i];
            //cout<<h[i+1]<<" "<<h[i]<<endl;
            if(max<x)
                max=x;
        }
        //cout<<max;
        if(max!=0)
            cout<<max;
    }
    else
    {
        cout<<s.size()+1;
    }

}

#include <bits/stdc++.h>

using namespace std;

string a;
long k = 0, t, bor = 0;

int main()
{
      cin >> a;
      bool bl = true;
      vector <long> vv;
      vv.push_back(0);
      for (int i = 1; i < a.size()+1; i++){
            if (a[i-1] == 'A' || a[i-1] == 'E' || a[i-1] == 'I' || a[i-1] == 'O' || a[i-1] == 'U' || a[i-1] == 'Y'){
                  vv.push_back(i-k);
                  k = i;
            }
      }
      vv.push_back(a.size()-k+1);
      sort (vv.begin(), vv.end());
      cout << vv[vv.size()-1];

	return 0;
}

//Kings Never Die
#include<bits/stdc++.h>
using namespace std;
int main(){
   int ans = 0;
    int cur = -1;
    string s;
    cin >> s;
    s += "A";
    for (int i = 0; i < s.size(); i++) {
        char c = s[i];
        if (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U' || c == 'Y') {
            ans = max(ans, i - cur);
            cur = i;
        }
    }
    cout << ans << endl;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string str;
    getline(cin,str);
    int count=0;
    int a[100],I=0,i;
    bool x=false;
    for(i=0;i<str.length();i++)
    {
        x=true;
        count++;
        if(str[i]=='A'||str[i]=='E'||str[i]=='I'||str[i]=='O'||str[i]=='U'||str[i]=='Y')
        {

            a[I++]=count;
            count=0;
        }
    }
    count++;
    if(!x)
        a[I++]=count;
    if(str[i-1]!='A'||str[i-1]!='E'||str[i-1]!='I'||str[i-1]!='O'||str[i-1]!='U'||str[i-1]!='Y')
        a[I++]=count;
    sort(a,a+I,greater<int>());
    cout<<a[0]<<endl;
    return 0;
}

#include <bits/stdc++.h>
#include <ctime>
#include <sstream>
#define weewoo ios::sync_with_stdio(false);cin.tie(0)
#define pii pair<int,int>
#define pll pair<ll,ll>
#define ld long double
#define ll long long
#define se second
#define fi first
#define ctoi(x) x-'0'
#define pi (acos(-1))

using namespace std;

bool isPrime(int num){
    bool flag=true;
    for(int i = 2; i <= sqrt(num);i++) {
       if(num % i == 0) {
          flag = false;
          break;
       }
    }
    return flag;
}

int main()
{
    weewoo;
    string x;cin >> x;
    ll cnt=0;ll i=0;
    for(;i<x.length();i++){
        if(x[i]=='A'||x[i]=='E'||x[i]=='O'||x[i]=='U'||x[i]=='Y'||x[i]=='I'){
            break;
        }
    }
    //cout << x.length() << endl;
    if(i==x.length())
        return cout << x.length()+1 << endl,0;
    ll ans=i+1;
    i++;
    for(;i<x.length();i++){
        cnt++;
        if(x[i]=='A'||x[i]=='E'||x[i]=='O'||x[i]=='U'||x[i]=='Y'||x[i]=='I'){
            ans=max(ans,cnt);
            cnt=0;
        }
    }
    cnt++;
    ans=max(ans,cnt);
    cout << ans << endl;
    return 0;
}

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

string s;

bool check(char c)
{
	return (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U' || c == 'Y');
}

int main()
{
	cin >> s;
	int maxlen = 0;
	int cnt = 0;
	int len = s.length();
	int i = 0;
	while (len > 0) {
		cnt = 1;
		if (check(s[i])) {
			++i;
			--len;
			while (!check(s[i]) && len > 0) ++cnt, ++i, --len;
		}
		else while(!check(s[i]) && len > 0){
			++i;
			--len;
			++cnt;
		}
		if (cnt > maxlen) maxlen = cnt;
	}

	cout << maxlen << endl;

	return 0;
}

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

int main(){
	char string[101];
	int largest=0;
	int c=0;
	int curr=0,lompat=0;
	scanf("%[^\n]",string);
		while (string[c]!='\0'){
			if (string[c]=='A' || string[c]=='Y' || string[c]=='U' || string[c]=='I' || string[c]=='O' || string[c]=='E'){

				lompat=0;
			}
			else {
				lompat++;
				curr=lompat;
			}

			 if (curr>largest) largest=curr;

			c++;
		}

	printf("%d\n",largest+1);

	return 0;
}

#include <iostream>
#include <string>
#include <set>

using namespace std;

int main()
{
	set<char> q;
	q.insert('A');
	q.insert('O');
	q.insert('E');
	q.insert('I');
	q.insert('U');
	q.insert('Y');
	//("A", "E", "U", "I", "O", "Y");
	string s;
	cin >> s;
	int prev = -1, step = 1;
	for (int i = 0; i < s.length(); i++)
	{
		if(q.count(s[i]) == 1)
		{
		//	cout << prev << " " << i << endl;
			if (i - prev > step)
			{
				step = i - prev;
			}
			prev = i;
		}
	}
	if (prev == -1)
		cout << s.length() + 1 << endl;
	else
	{
		if(s.length() - prev > step)
			step = s.length() - prev;
		cout << step << endl;
	}
	//system("pause");
	return 0;
}

#include<iostream>

using namespace std;

int main(){

    char a[101];int k=-1,i,max=0,s;
    cin>>a;
    for(i=0;a[i]!='\0';i++)
    {
        if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U'||a[i]=='Y')
        {
            s=i-k;k=i;
            if(s>max)
                max=s;
        }

    }
    s=i-k;
    if(s>max)
        max=s;
    cout<<max;
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

	int id[100],mx[100];
	char s[100];
int main() {
#ifndef ONLINE_JUDGE
	freopen("in.in", "r", stdin);
	freopen("out.out", "w", stdout);
#endif
	cin>>s+1;
	int n=strlen(s+1),j=0;
	int ans=0;
	for(int i=1; i<=n; i++){
		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, i-j);
			j = i;
		}
	}
	ans = max(ans, n+1-j);
	cout<<ans<<endl;
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
bool isvowel(char c)
{
    if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U'||c=='Y')
        return true;
    return false;
}
int main()
{
    string s;
    cin>>s;
    vector<int> v;
    v.push_back(0);
    for(int i=0;i<s.size();i++)
        if(isvowel(s[i]))
            v.push_back(i+1);
    v.push_back(s.size()+1);
    int ans=0;
    for(int i=1;i<v.size();i++)
        ans=max(ans,v[i]-v[i-1]);
    cout<<ans;
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main()
{
    char Str[111];
    int vis[111];
    int index, ans, last, tot;
    while( ~scanf( "%s", Str ) )
    {
        last = -1;
        memset( vis, 0, sizeof(vis) );
        tot = index = 0;
        ans = 1;
        for( int i = 0; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
        {
            tot ++;
            if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
            {
                vis[ index ++ ] = i + 1;
                last = i;
            }
        }
        int tmp = 0;
        for( int i = 0; i <= tot; i ++ )
        {
            if(vis[i])
            {
                //printf( "%d ", vis[i] );
                ans = max( vis[i] - tmp, ans );
                tmp = vis[i];
            }
        }
        int L = strlen(Str);
        ans = max( L - last, ans );
        if( index >= 2 )
            ans = max( vis[ index - 1 ] - vis[ index - 2 ], ans );
        //printf( "\nlast = %d,\tL = %d,\tindex = %d\n", last, L,index );
        printf( "%d\n", ans );
    }
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
char a[10001];
int wz,Max=-100,i;
int main()
{
	gets(a);
	int wz=-1;
	int la=strlen(a);
	for(i=0;i<la;i++)
	{
		if(a[i]=='A' || a[i]=='E' || a[i]=='I' || a[i]=='O' || a[i]=='U' || a[i]=='Y')
		{
			Max=max(Max,i-wz);
			wz=i;
		}
	}
	Max=max(Max,la-wz);
	printf("%d",Max);
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
	std::ios::sync_with_stdio(false);
	string s;
	cin>>s;
	int last=0,ans=0;
	int n=s.size();
	while(!(s[last]=='A'||s[last]=='E'||s[last]=='I'||s[last]=='O'||s[last]=='U'||s[last]=='Y')&&last<s.size()) last++;
    ans=last+1;
	for(int i=last+1;i<n;i++)
	{
		if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
		{
			ans=max(ans,i-last);
			last=i;
		}
	}
	ans=max(ans,n-last);
	cout<<ans<<endl;
	return 0;
}

///             [[[ in the GOD name ]]]
#include <bits/stdc++.h>
#include <string>

#define ll long long
#define ld long double
#define MaxN 1000000000
#define mkp(i, j) make_pair<i, j>
#define st first
#define nd second
#define pii pair<int,int >
#define vi vector< int>
#define vpii vector< pair<int,int > >
#define vvi vector< vector< int> >
#define sp " "
#define nl "\n"

const int OO = 1000001;
const int _OO = -1*OO;
int dx[] = { 1, 1, 0,-1,-1, 0, 1,-1};
int dy[] = { 1, 0, 1,-1, 0,-1,-1, 1};

using namespace std;

string s, vow = "AEIOUY";
vi pos;

int main( void){
    ios::sync_with_stdio( false), cin.tie( 0), cout.tie( 0);

    cin>> s;
    pos.push_back( 0);
    for(int i=0 ; i<s.length(); i++){
        if(vow.find(s[i]) != -1)
            pos.push_back( i+1);
    }
    pos.push_back( s.size()+1);

    int ans = 0;
    for(int i=1; i<pos.size() ; i++)
        ans = max(ans, pos[i]-pos[i-1]);

    cout<< ans<< nl;
    return 0;
}

// ConsoleApplication10.cpp : Defines the entry point for the console application.
//

#include <iostream>;
#include <string> ;
using namespace std;
int main()
{
	string x;
	string vols = "AEIOUY";
	cin >> x;
	int sum = 0;
	int number = 0;
	int fir = -1,sec=-1;
	int max=1;
	int counter = 0;
	for (int b = 0 ; b < x.length(); b++)
	{
		if (vols.find(x[b]) != -1)
		{
			if (number == 0)
			{
				fir = b;
				sum = b + 1;
				max = sum;
				number++;
			}
			else
			{
				sec = b;
				sum = sec - fir;
				if (max < sum)
					max = sum;
				fir = b;
			}

		}
		else
		{
			if (b == x.length() - 1 && fir != -1)
			{
				sum = x.length() - fir;
				if (max < sum)
					max = sum;
			}
			counter++;
			if (counter == x.length())
				max = counter+1;
		}
	}
	cout << max;
}

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <map>
#include <set>
#include <iomanip>

using namespace std;

typedef long long i64;
typedef unsigned long long ui64;

int main()
{
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
#endif // !ONLINE_JUDGE
	string str;
	cin >> str;
	set<int> vowels = { 'A', 'I', 'E', 'U', 'Y', 'O' };
	int last_vowel = 0;
	int max_jump = 1;
	int pos = 1;
	for(auto c: str)
	{
		if (vowels.find(c) != vowels.end())
		{
			max_jump = max(max_jump, pos - last_vowel);
			last_vowel = pos;
		}
		pos++;
	}
	max_jump = max(max_jump, pos - last_vowel);
	cout << max_jump ;
	return 0;
}

//#include<bits/stdc++.h>
#include <iostream>
#include <algorithm>
#include <bitset>
#include <deque>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <map>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
using namespace std;
int main() {

	string s;
	cin >> s;
	int ans = 0, pre = -1;
	for (int i = 0; i < s.size(); i++) {

		if (s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O'
				|| s[i] == 'Y' || s[i] == 'U') {
			if (i - pre > ans) {
				ans = i - pre;
			}
			pre = i;
		}
		else if(i==(int)s.size()-1)
		{
			if (i+1 - pre > ans) {
							ans = i+1 - pre;
						}
		}

	}
	if (pre == -1) {
		cout << (int) s.size() + 1 << endl;
	} else
		cout << ans << endl;

	return 0;
}

#include <iostream>

using namespace std;

int main()
{ string s;
int nb=0,m=0;
    cin>> s;

    for(unsigned int i=0;i<s.size();i++){
            nb++;

        if(s[i]== 'A' ||s[i]=='O'|| s[i]=='I' || s[i]=='Y'||s[i]=='E'||s[i]=='U') {

                if (nb>m)  m=nb;
        nb=0;
        }
        if(i== s.size()-1) {nb++;
             if (nb>m) m=nb;}
    }
    cout <<m<< endl;
    return 0;
}

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string ch;
    int maxleap  = 0,posAct = -1;
    cin >> ch;
    //cout << ch.size()<< endl;
    for (int i = 0 ; i < ch.size(); i++){
        if (ch[i] == 'A' || ch[i] == 'E' || ch[i] == 'U' || ch[i] == 'I' || ch[i] == 'O' || ch[i] == 'Y'){
            if ((i - posAct) > maxleap){
                    maxleap = (i - posAct) ;
            }
        posAct = i ;
        }
    }
    if (posAct== 0 && ch[0] != 'A' && ch[0] != 'E'&& ch[0] != 'U'&& ch[0] != 'I'&& ch[0] != 'O'&& ch[0] != 'Y'){
            maxleap = (ch.size() - posAct) + 1;
    }else if ((ch.size() - posAct)  > maxleap){
        maxleap = ch.size() - posAct;
    }
    cout << maxleap;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
#define Max(a,b) a>b?a:b
char s[101];
int main()
{
	scanf("%s",s);
	int ans=1,lst=-1; bool mark=0;
	for (int i=0;i<strlen(s);i++)
		if (s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y')
		{
			if (!mark) mark=1;
			ans=Max(ans,i-lst);
			lst=i;
		}
		else if (i == strlen(s) - 1)
				ans=Max(ans,i-lst+1);
	if (!mark) printf("%d",strlen(s)+1);
	else printf("%d",ans);
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
char s[100000];
bool jud(char a)
{
	if(a=='A'||a=='E'||a=='I'||a=='O'||a=='U'||a=='Y')return true;
	else return false;
}
int main()
{
	int cur=-1;int max=0;
	gets(s);
     for(int i=0;i<strlen(s);i++)
     {
     	if(jud(s[i])) {
     		if(i-cur>max)max=i-cur;
     		cur=i;
		 }
	 }
	 if(strlen(s)-cur>max)max=strlen(s)-cur;
	 cout<<max;
 }

#include<iostream>
#include<string>
using namespace std;

int main()
{
	string s;
	cin>>s;

	int  count2=0 , count=0 , pos1=0 , pos2=0;
	for (int i=0 ; i<s.size() ; i++)
	{
		pos1=pos2;
		if (s[i]=='A' || s[i]=='E' || s[i]=='U' || s[i]=='Y' || s[i]=='O' || s[i]=='I')
			{

				pos2=i+1;

			}//if
		else
			if (i==s.size()-1)
				pos2=s.size()+1;

		count2=pos2-pos1;
		count=max(count , count2);
	}//for

		cout<<count<<endl;
	return 0;
}//main

#include <iostream>
#include <string>
#include <set>

int main() {
    std::string str;
    std::cin >> str;
    std::set<char> s = {'A', 'E', 'I', 'O', 'U', 'Y'};
    int k = 0, max = 0;
    for (auto &c: str) {
        k++;
        if (s.count(c)) {
            if (k > max) max = k;
            k = 0;
        }
    }
    k++;
    if (!max)
        std::cout << str.length() + 1 << std::endl;
    else {
        if (k > max) max = k;
        std::cout << max << std::endl;
    }
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main() {
    int i,j,d=0,l,count=-1,con=0;
    int arr[109];
    char ch[109];
    gets(ch);
    l=strlen(ch);
    for(i=0; i<l; i++) {
        if(ch[i]=='A'||ch[i]=='E'||ch[i]=='I'||ch[i]=='O'||ch[i]=='U'||ch[i]=='Y') {
            count++;
            arr[count]=i;
        }
    }

    if(count>1) {

        for(j=0; j<=count; j++) {
            {
                if(j==0)
                    d=arr[j]+1;
                if((arr[j]-arr[j-1])>d) {
                    d=arr[j]-arr[j-1];
                }
                if(l-arr[count]>d)
                    d=l-arr[count];

            }

        }
    } else if(count==1) {
        d=(arr[0]+1);
        if(d<arr[1]-arr[0]||d<l-arr[1]) {
            if(arr[1]>l-arr[1])
                d=arr[1]-arr[0];
            else
                d=l-arr[1];
        }

    }

    else if(count==0) {
        if(arr[0]==l-1)
            d=l;
        else {
            d=l-arr[0];
            if(arr[0]+1>d)
                d=arr[0]+1;
        }

    } else if(count==-1)
        d=l+1;

    printf("%d\n",d);
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s; cin>>s;
    vector<int>ss;
    for(int i=0; i<s.size(); i++){
        if(s[i]=='A' || s[i]=='E' || s[i]=='I' || s[i]=='O' || s[i]=='U' || s[i]=='Y' ){
            ss.push_back(i+1);
        }
    }
    if(ss.size()==0){
        cout<<s.size()+1<<endl; return 0;
    }
    int lastss=ss[ss.size()-1];
    int lasts=s.size()+1;
    int mi= lasts-lastss;
    int maxx=ss[0];
    for(int i=1; i<ss.size(); i++){
        maxx=max(maxx, ss[i]-ss[i-1]);
    }
    cout<<max(maxx,mi)<<endl;
}

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

bool is_vowel(char ch)
{
    if( ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U' || ch == 'Y'){
        return true;
    }
    return false;
}
int main()
{
    string str;
    cin >> str;
    vector<int> ans;
    ans.push_back(0);
    for(int i = 0; i < str.size(); i++){
        if(is_vowel(str[i])){
            ans.push_back(i+1);
        }
    }
    ans.push_back(str.size()+1);
    vector<int> v;
    for(int i = 0; i < ans.size()-1; i++){
        v.push_back(abs(ans[i]-ans[i+1]));
    }
    cout << *max_element(v.begin(), v.end()) << endl;

}

#include<bits/stdc++.h>

using namespace std;

int main()
{

    ios_base::sync_with_stdio(false);

    int a,b,c,n,mx=0;
    string s;
    cin>>s;
    a=0;
    for(int i=0;s[i]!='\0';i++)
    {
        if(s[i]=='A' || s[i]=='E' || s[i]=='I' || s[i]=='O' || s[i]=='U' || s[i]=='Y')
        {

            b=(i+1)-a;
            a=i+1;
            mx=max(b,mx);
        }
    }
    b=s.size();
    mx=max(((b-a)+1),mx);
    if(mx==0){
        mx++;
    }
    cout<<mx<<"\n";
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	int a=0,ans=0;
	cin>>s;
	for(int i=0;i<s.length();i++)
	{
		a++;
		if(ans<a) ans=a;
		if (s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y') a=0;
	}
	a++;
	if(ans<a) ans=a;
	cout<<ans<<endl;
	return 0;
}

#include <iostream>
#include <string>

using namespace std;

int main()
{
    int i,ma=0,n=0,j=0;
    string s;
    cin >>s;
    for (i=0;i<s.length();i++)
    {
        if(s[i]=='A'||s[i]=='O'||s[i]=='U'||s[i]=='E'||s[i]=='I'||s[i]=='Y')
        {
            n=i+1-j;
            j=i+1;
        }
        if (n>ma)
            ma=n;
    }
    if(s.length()+1-j>ma)
        ma=s.length()+1-j;
    if (ma==0)
        ma=s.length()+1;
    cout <<ma;
    return 0;
}

#include <iostream>
#include <string>
using namespace std;
int main() {
	string s;
	cin>>s;
	int len=0,cur=1;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]!='A' && s[i]!='E' && s[i]!='I' && s[i]!='O' && s[i]!='U' && s[i]!='Y')
		cur++;
		else
		cur=1;
		len=max(len,cur);
	}
	cout<<len<<endl;
	return 0;
}

#include <bits/stdc++.h>
using namespace std;

int main()
{
	string s;
	cin>>s;

	vector<int> v;
	v.push_back(-1);
	for(int i=0;i<s.length();i++)
	{
		if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
		{
			v.push_back(i);
		}
	}
	v.push_back(s.length());
	int temp=-1;
	for(int i=0;i<v.size()-1;i++)
	{
		temp=max(temp,v[i+1]-v[i]);
	}
	cout<<temp<<endl;
}

#include <stdio.h>
#include <string.h>
char v[10] = { 'A','E','I','O','U' ,'Y'};
char s[20000];
int main(void)
{
	scanf("%s", s + 1);
	int len = strlen(s + 1);
	int ck = 0;
	int tmp = 0;
	int ans = 0;
	for (int i = 1; i <= len; i++) {
		++tmp;
		for (int j = 0; j<6; j++) {
			if (s[i] == v[j]) {
				ck = 1;
				break;
			}
		}
		if (ck == 1) {
			ck = 0;
			if (ans < tmp) ans = tmp;
			tmp = 0;
		}
	}
	++tmp;
	if (ans < tmp) ans = tmp;
	printf("%d", ans);
	return 0;
}

#include <bits/stdc++.h>

#define FOR(i,a,b) for(int i = a; i <= b; i++)
#define FORD(i,a,b) for(int i = a; i >= b; i--)
#define _it(i,v) for (typeof((v).begin()) i = (v).begin(); i != (v).end(); ++i)
#define _all(v) v.begin(), v.end()

#define DEBUG(x) { cerr << "--> " << #x << " = " << x << '\n'; }
#define sqr(x) ((x)*(x))

#define INF			1011111111
#define EPS			(double)1e-8
#define mod			1000000007
#define PI			3.14159265358979

using namespace std;
typedef long long ll;
typedef unsigned long long ull;

inline ll gcd(ll a, ll b) {
    if (a < 0) return gcd(-a, b);
    if (b < 0) return gcd(a, -b);
    return b ? gcd(b, a%b) : a;
}
inline ll lcm(ll a, ll b) {
    if (a < 0) return lcm(-a, b);
    if (b < 0) return lcm(a, -b);
    return a * (b / gcd(a, b));
}
template<class T> inline T _max(T a, T b) { return (a>b) ? a:b; }
template<class T> inline T _min(T a, T b) { return (a<b) ? a:b; }

char w[] = { 'A', 'E', 'I', 'O', 'U', 'Y'};

bool check(char c) {
	FOR(i,0,5) {
		if(c == w[i]) return true;
	}
	return false;
}

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);
	#ifndef ONLINE_JUDGE
    freopen("INPUT.inp", "r", stdin);
    #endif

    // solution starts...
    string s;
    cin >> s;

    int len = s.length(), index = 1, a[101];
    bool flag[256];
    memset(flag, true, sizeof flag);
    FOR(i,0,len-1) {
    	if(check(s[i])) {
    		flag[i] = false;
    	}
    }
    int maxx = 0, cnt = 0;
    FOR(i,0,len-1) {
    	if(flag[i]) {
    		cnt++;
    		if(cnt > maxx) {
    			maxx = cnt;
    		}
    	} else cnt = 0;
    }
    cout << maxx + 1 << '\n';
    // solution end...

	return 0;
}

	/*
	   Author: Shivam Shukla
	   Problem URL: https://codeforces.com/problemset/problem/733/A
	*/
	#include<bits/stdc++.h>
	using namespace std;

	typedef long long ll;
	typedef pair<int,int> pii;
	typedef pair<ll,ll> pll;
	typedef vector<pair<ll,ll> > vpll;

	const int MOD=1e9+7;
	const int MAX=1e5+5;
	const double PI= acos(-1.0);
	const long double EPS=1e-10;
    const int64_t INF=1e18+10;

	#define fastio() ios_base::sync_with_stdio(false);cin.tie(0), cout.tie(0)
	#define trace(...) " [" << #__VA_ARGS__ ": " << (__VA_ARGS__) << "] "
	#define all(x) x.begin(),x.end()
	#define rall(x) x.rbegin(),x.rend()

	#define vl vector<ll>
	#define vs vector<str>
	#define vc(x) vector<x>
	#define mapll map<ll,ll>
	#define mapib map<int,bool>
	#define mapiv map<int,vector>
	#define mapsi map<string,int>
	#define repa(i,n) for(ll i=0;i<n;i++)
	#define dowa(i,n) for(ll i=n;i>=0;i--)
	#define reps(i,j,k,s) for(ll i=j;i<k;i+=s)
	#define downs(i,j,k,s) for(ll i=j;i>=k;i-=s)
	#define trv(i,x) for(auto i:x)
	#define pb push_back
	#define sz(x) (int)x.size()

	#define ff first
	#define ss second
	#define str string
	#define dub double
	#define pqmax priority_queue<ll>
	#define pqmin priority_queue<ll,vl,greater<ll> >

    template<typename t> t lcm(t a, t b) {return (a*b)/__gcd(a,b);}
    template<typename t> t gcd(t a, t b) {return __gcd(a,b);}
    template<typename t> t mul_mod(t a, t b, t m){t res=((a%m)*(b%m)%m); return res;}
    template<typename t> t add_mod(t a, t b, t m){t res=((a%m)+(b%m))%m; return res;}
    template<typename t> t pow(t a,t b,t m) {t res=1;while(b){if(b&1) res=mul_mod(res,a,m);a=mul_mod(a,a,m), b>>=1;} return res%m;}
    template<typename t> vc(t) num_vec(t num) {t res; while (num) res.pb(num%10), num/=10; return res;}
    template<typename t> t vec_num(t vec) {t res=0; ll mul=1; repa(i,sz(vec)) res=vec[i]*mul, mul*=10; return res;}

	int solve2(str js){
	        //IN this question we have to find the longest sbstring of consonants

		int cnt=0, ans=numeric_limits<int>::min();
		repa(i, js.length()){
            if(js[i]=='A' || js[i]=='E' || js[i]=='I' || js[i]=='O' || js[i]=='U' || js[i]=='Y'){
		    		ans=max(ans, cnt+1);cnt=0;
		    	}
		    else cnt++;
		}
        ans=max(ans, cnt+1);
		return ans;
	}

	int32_t main(int argc,char** argv){
		fastio();
		auto tstart= clock();

		#ifndef ONLINE_JUDGE
		 freopen("/root/Desktop/Competitive Programming/input.txt","r",stdin);
	     freopen("/root/Desktop/Competitive Programming/output.txt","w",stdout);
	     freopen("/root/Desktop/Competitive Programming/error.txt","w",stderr);
	    #endif

	    /* Code Here */
	    str js; cin>>js;

	    cout<<solve2(js)<<endl;
	    cerr<<setprecision(2)<<fixed<<"Time elapsed: "<<(double)(clock() - tstart)/CLOCKS_PER_SEC<<endl;
	    return 0;
	}

#include<bits/stdc++.h>

using namespace std;

string vowels = "AEIOUY";

bool isVowel(char c){
    for(int i=0; i<vowels.length(); i++){
        if(c == vowels[i]){
            return true;
        }
    }
    return false;
};

int main(){
    string line;
    getline(cin, line);
    int jAbility = 1;
    int c = 1;
    for(int i=0; i<line.length(); i++){
        if(isVowel(line[i])){
            jAbility = max(jAbility, c);
            c = 1;
        }
        else c++;
    };
    jAbility = max(jAbility, c);
    cout << jAbility << endl;
    return 0;
};
// 1534450079498

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#define ll long long
using namespace std;
const int maxn=105;
char s[maxn];//bool f[maxn];
int main()
{
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	int a=0,cur=0;
	cin>>s;
	int len=strlen(s);
	for(int i=0;i<len;i++)
    {
        if( s[i] ==  'A' || s[i] == 'E'|| s[i] == 'I'|| s[i] == 'O'|| s[i] == 'U' || s[i] == 'Y')
        {
            a=max(a,cur+1);
            cur=0;
        }
        else
            cur++;
    }
    a=max(a,cur+1);
    cout<<a<<endl;
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main(){
	string a;
	cin>>a;
	int i,cnt=0,last=-1;
	for(i=0;i<a.size();i++){
		if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U'||a[i]=='Y'){
			cnt=max(cnt,i-last);
			last=i;
		}
	}
	cout<<max(cnt,(int)a.size()-last);
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
string p;
int a=-1,m;//m存放答案
int main()
{
    cin>>p;
    for(int x=0;x<p.size();x++)
        if(p[x]=='A'||p[x]=='E'||p[x]=='I'||p[x]=='O'||p[x]=='U'||p[x]=='Y')//如果是元音
            m=max(m,x-a),a=x;//更新a，如果长度比m大就更新m
    cout<<max(m,(int)p.size()-a);//不要忘了判断最后一跳的长度
    return 0;//望管理员通过
}

#include <bits/stdc++.h>
using namespace std;
#define mem(x) memset(x,0,sizeof(x))
#define ll long long
inline int rint() { int a; scanf("%d", &a); return a; }
inline long long rll() { long long a; scanf("%lld", &a); return a; }
inline double rdouble() { double a; scanf("%lf", &a); return a; }
#define itn int
int main() {
	string s; cin >> s; s = "A" + s + "A";
	int res = 0;
	int last = 0;
	for (int i = 1; i < s.size(); i++) {
		if (s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y') {
			res = max(res, i - last);
			last = i;
		}
	}
	cout << res << endl;
	return 0;
}

#include <iostream>
#include<string>
using namespace std;

string s;
int main() {
	// your code goes here
	getline(cin,s);
	int mx=0,pVow;
	for(int i=0;i<s.length();i++){
		if(s[i]=='A'||s[i]=='E'||s[i]=='O'||s[i]=='U'||s[i]=='I'||s[i]=='Y'){
			mx=i+1;
			break;
		}
	}
	pVow=mx;
		for(int i=mx-1;i<s.length();i++){
		if(s[i]=='A'||s[i]=='E'||s[i]=='O'||s[i]=='U'||s[i]=='I'||s[i]=='Y'){
				mx=max(mx,(i+1-pVow));
				pVow=i+1;
		}
	}
	int i=s.length()+1-pVow;
	mx=max(mx,i);
	cout<<mx;
	return 0;
}

/******************************************
*    AUTHOR:         ASHUTOSH MAHESHWARI    *
*    INSTITUITION:   SGITS INDORE   *
******************************************/
#include <bits/stdc++.h>
using namespace std;

typedef long long LL;
typedef long double LD;

const int MAX   = 1e5 + 5;
const int LIM   = 3e5 + 5;
const int MOD   = 1e9 + 7;
const LD  EPS   = 1e-10;
const double PI = acos(-1.0);

#define fastio          ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define Assert(x) 		{if(!(x)){cerr<<"Assertion failed at line "<<__LINE__<<": "<<#x<<" = "<<(x)<<"\n";exit(1);}}
#define inchar          getchar//_unlocked
#define outchar(x)      putchar(x)//_unlocked(x)
#define unique(a)       sort((a).begin(), a.end()), (a).erase(unique((a).begin(), (a).end()),(a).end())

double tick(){static clock_t oldt;clock_t newt=clock();double diff=1.0*(newt-oldt)/CLOCKS_PER_SEC;oldt = newt;return diff;}

template<typename T> T gcd(T a, T b){return (b?__gcd(a,b):a);}
template<typename T> T lcm(T a, T b){return (a*(b/gcd(a,b)));}
template<typename T> T mod(T a, T b) {return (a<b ? a : a%b);}
template<typename T> T add(T a, T b, T c){T x=a+b;return (x>=c ? x-c : x);}
template<typename T> T mod_neg(T a, T b) {a=mod(a, b);if(a<0){a+=b;}return a;}
LL mulmod(LL a,LL b, LL m){LL q=(LL)(((LD)a*(LD)b)/(LD)m);LL r=a*b-q*m;if(r>m)r%=m;if(r<0)r+=m;return r;}
template<typename T> T expo(T e, T n){T x=1,p=e;while(n){if(n&1)x=x*p;p=p*p;n>>=1;}return x;}
template<typename T> T power(T e, T n, T m){T x=1%m,p=e;while(n){if(n&1)x=mod(x*p,m);p=mod(p*p,m);n>>=1;}return x;}
template<typename T> T extended_euclid(T a, T b, T &x, T &y){T xx=0,yy=1;y=0;x=1;while(b){T q=a/b,t=b;b=a%b;a=t;t=xx;xx=x-q*xx;x=t;t=yy;yy=y-q*yy;y=t;}return a;}
template<typename T> T mod_inverse(T a, T n){T x,y;T d = extended_euclid(a, n, x, y);return (d>1?-1:mod_neg(x,n));}

int main() {
    // #ifndef ONLINE_JUDGE
    //     freopen("inp.txt", "r", stdin);
    //     freopen("out.txt", "w", stdout);
    // #endif
    fastio;
    string s;
    cin>>s;

int count=0,max=0;
    for(int i=0;i<s.length();i++)
    {
        if( !( s[i]=='A' || s[i]=='E'||s[i]=='I' || s[i]=='O' || s[i]=='U' || s[i]=='Y'))
        {
            count++;

    }
    else{
        if(count>max)
        max=count;
        count=0;
    }
    }
     if(count>max)
        max=count;
        count=0;
    cout<<max+1<<endl;

    // cout<<"Execution time : "<<tick()<<"\n";
    return 0;
}

//#Name: Sofen Haque Anonta  #Problm:
#include <algorithm>
#include <iostream>
#include <fstream>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <cstdarg>
#include <utility>
#include <bitset>
#include <cctype>
#include <cstdio>
#include <vector>
#include <string>
#include <cmath>
#include <ctime>
#include <queue>
#include <deque>
#include <stack>
#include <set>
#include <map>

using namespace std;

//FOLD ME!!!
namespace{
typedef long long LL;
typedef vector<int> vint;
typedef pair<int,int> pint;
typedef map<int,int> mapii;
typedef map<int,bool> mapib;
typedef stringstream strstream;
typedef unsigned long long ULL;

//Macros
int CC_;
#define sf scanf
#define pf printf
#define PP cin.get();
#define NL cout<<endl;
#define all(container) container.begin(),container.end()
#define DC(x_) cout<<">>> "<<#x_<<"\n";DA(x_.begin(), x_.end());
#define DD(x_) cout<<">>>>( "<<++CC_<<" ) "<<#x_<<": "<<x_<<endl;
#define SS printf(">_<LOOOOOK@MEEEEEEEEEEEEEEE<<( %d )>>\n",++CC_);
#define EXT(st_) cout<<"\n>>>Exicution Time: "<<(double)(clock()-st_)/CLOCKS_PER_SEC<<endl;
#define DM(MT,n_,m_)pf("Matrix %s:\n   ", #MT);for(int i_= 0;i_<m_;i_++)pf("%4d ", i_);NL;NL;for(int r_=0;r_<n_;r_++){pf("%2d ", r_);for(int c_= 0;c_<m_;c_++)pf("%4d ", MT[r_][c_]);NL}

//constants
const int SZ= 1E6;
const double EPS= 1E-9;
const double PI= 2*acos(0.0);
const long long MOD= 1000000007;
}

bool voul(char c){
    return (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U' || c == 'Y');
}

void solve(void){
    string s;
    int len, f= -1, l= -1;
    cin>>s;

    len = s.size();

    for(int i= 0; i<len; i++){
        if(voul(s[i])){
            f= i;
            break;
        }
    }

    for(int i= len-1; i>= 0; i--){
        if(voul(s[i])){
            l= i;
            break;
        }
    }

//    DD(len)
//    DD(f)
//    DD(l)

    int mx= max(f+1, len-l) , cur= 0;
    for(int i= f; i<=l; i++){
        if(voul(s[i])){
//            DD(i<<" "<<s[i])

            if(mx< cur) mx= cur;
            cur= 0;
        }

        cur++;
    }

    cout<< mx  <<endl;

}

/*INPUTS!!!

*/

int main(void){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    solve();

    return 0;
}

#include<stdio.h>
#include<string.h>
#define max(a,b) ( (a) > (b) ? (a) : (b) )

char str[1024];

inline int check(int);

int main(void){
	register int i=0,j,len,Max=0;
	scanf("%s",str);
	len=strlen(str);
    while(!check(i)&&i<len)
		i++;
    Max=i+1;
    for(j=i+1;j<len;j++)
        if(check(j))
			Max=max(Max,j-i),
			i=j;
    Max=max(Max,len-i);
    printf("%d\n",Max);
    return 0;
}

inline int check(int index){
	return !(str[index]!='A'&&str[index]!='E'&&str[index]!='I'&&str[index]!='O'&&str[index]!='U'&&str[index]!='Y');
}

#include <vector>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
using namespace std;

typedef long long ll;
int main() {
	string st;
	cin >> st;
	int res=0;
	int pos=-1;
	for(int i=0;i<st.size();i++)
	{
		if(st[i]=='A'||st[i]=='E'||st[i]=='U'||st[i]=='O'||st[i]=='Y'||st[i]=='I')
		{
			res=max(res,i-pos);
			pos=i;
		}
	}
	if(st.size()-pos>res)
		res=st.size()-pos;
	cout << res << endl;
    return 0;
}

#include<iostream>
#include<string>
#include<map>
#include<vector>
#include<algorithm>
#include<cmath>
#include<set>
#include<stdio.h>
#include<stdlib.h>
#include<queue>
#include<stack>
#define ll long long int
#define eps 1e-7
using namespace std;
const int MAXN = 200000;

bool check (char str){
    if(str=='A' || str=='E' || str=='I' || str=='O' || str=='U' || str=='Y'){
      return true;
    }
    return false;
}
string str;
int main(){
  cin>>str;
  int cur = 0;
  int prev = -1;
  int maxx = 0;
  int cnt = 0;
  for(int i=0;i<str.size();i++){
    if(str[i]=='A' || str[i]=='E' || str[i]=='I' || str[i]=='O' || str[i]=='U' || str[i]=='Y'){
      cur = i;
      cnt++;
      maxx = max(maxx, abs(cur-prev));
      prev = cur;
    }
  }
  if(cnt==0){
    cout<<str.size()+1<<endl;
    return 0;
  }
  if(cnt==1 && str.size()==1){
    cout<<1<<endl;
    return 0;
  }
  if(!check(str[str.size()-1])){
    if(maxx < str.size()-cur) maxx = str.size()-cur;
  }
  cout<<maxx<<endl;
  return 0;
}

#include<bits/stdc++.h>
using namespace std;
string p;
int a=-1,m;
int main()
{
    cin>>p;
    for(int x=0;x<p.size();x++)
        if(p[x]=='A'||p[x]=='E'||p[x]=='I'||p[x]=='O'||p[x]=='U'||p[x]=='Y')//如果是元音
            m=max(m,x-a),a=x;
    cout<<max(m,(int)p.size()-a);
    return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

char s[101];
ifstream fin("date.in");
ofstream fout("date.out");

void main() {
	cin >> s;
	int maxDist = 1;
	int lastVowelPosition = -1;
	int diffrence = 1;
	for (int i = 0; i < strlen(s); i++) {
		if (strchr("AEIOUY", s[i]) != 0) {
			diffrence = i - lastVowelPosition;
			lastVowelPosition = i;
		}
		else {
			if (i == strlen(s) - 1)
				diffrence = i - lastVowelPosition + 1;
		}

		if (maxDist < diffrence) maxDist = diffrence;
	}
	cout << maxDist << '\n';
}

#include <bits/stdc++.h>
using namespace std;
char s[111];
int a[111];
int main(){
	scanf("%s",s);
	int mx=0;
	char b[]="AEIOUY";
	int len=strlen(s);
	int c=0;
	a[0]=0;
	for(int i=0;i<=len;i++){
		if(strchr(b,s[i])) c++,a[c]=i+1;
	}
	a[c+1]=len;
	for(int j=0;j<=c;j++) mx=max(mx,a[j+1]-a[j]);
	cout<<mx<<endl;
	return 0;
}

		// THIS IS ABU-HIJLEH ... DONT TRY TO UNDERSTAND MY SOLUTION ... I DONT UNDERSTAND IT :D
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <string>
using namespace std ;

int main()
{
	int max=-1, now=-1 ;
	string s ;
	cin >> s ;
	for(int i=0;i<s.length();i++)
	{
		if(s[i]=='A'||s[i]=='O'||s[i]=='U'||s[i]=='I'||s[i]=='E'||s[i]=='Y'){
			if(i-now>max)
			max = i-now ;
			now = i;
		}

	}

	int a =s.length()-now;
	if(a>max)
	{
		max = s.length() -now ;

	}
	cout << max << endl;

	return 0;
}

#include <bits/stdc++.h>

using namespace std;

long long n , a[111111] , ans , b[3] , mx = 1, last = -1;
string s;

int main(){
    cin >> s;
    s = s + 'A';
    for(int i = 0; i < s.size(); i++){
        if(s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y'){
            mx = max(mx , i - last);
            last = i;
        }
    }
    mx = max(s.size() - last , mx);
    cout << mx ;
    return 0;
}

#include<iostream>
#include<vector>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
	string b;
	cin >> b;
	b.push_back('A');
	reverse(b.begin(), b.end());
	b.push_back('A');
	reverse(b.begin(), b.end());
	int p = 0, o = 1;
	for (int i = 0; i < b.size(); ++i)
	{
		if (b[i] == 'A' || b[i] == 'E' || b[i] == 'I' || b[i] == 'O' || b[i] == 'U' || b[i] == 'Y')
		{
			o = max(p,o);
			p = 1;
		}
		else p++;
	}
	cout << o;
	return 0;
}

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main ()
{
	string s;
	cin>>s;
	s='A'+s+'A';
	int max=0;
	int last=0;
	int difr=0;
	for (int i=0;i<s.size();i++)
	{
		if (s[i]=='A'||s[i]=='I'||s[i]=='U'||s[i]=='Y'||s[i]=='O'||s[i]=='E')
		{
			difr=i-last;
			if (difr>max)
			{
				max=difr;
			}
			last=i;
		}

	}
	cout<<max;
}

#include<bits/stdc++.h>
using namespace std;
int a=-1,m;
int main()
{
string p;
    cin>>p;
    for(int x=0;x<p.size();x++)
        if(p[x]=='A'||p[x]=='E'||p[x]=='I'||p[x]=='O'||p[x]=='U'||p[x]=='Y')
{m=max(m,x-a);a=x;

    }
    cout<<max(m,(int)p.size()-a);
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    int maxn,preword=-1;
    cin>>s;
    int lns=s.length();
    for(int i=0;i<lns;i++)
    {
        if(s[i]=='A' || s[i]=='E' || s[i]=='I' || s[i]=='O' || s[i]=='U' || s[i]=='Y')
        {
            maxn=max(maxn,i-preword);
            preword=i;
        }
    }
    maxn=max(maxn,lns-preword);
    cout<<maxn<<endl;
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

string a;
long k = 0, t, bor = 0;

int main()
{
      cin >> a;
      bool bl = true;
      vector <long> vv;
      vv.push_back(0);
      for (int i = 1; i < a.size()+1; i++){
            if (a[i-1] == 'A' || a[i-1] == 'E' || a[i-1] == 'I' || a[i-1] == 'O' || a[i-1] == 'U' || a[i-1] == 'Y'){
                  vv.push_back(i-k);
                  k = i;
            }
      }
      vv.push_back(a.size()-k+1);
      sort (vv.begin(), vv.end());
      cout << vv[vv.size()-1];

	return 0;
}

#include<map>
#include<cmath>
#include<stack>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
template<class AC>void r(AC &x){
    x=0;
	int f=0;
	char ch=getchar();
    while(ch<'0'||ch>'9'){
		f|=(ch=='-');
		ch=getchar();
	}
    while(ch>='0'||ch<='9'){
		x=(x<<1)+(x<<3)+(ch^48);
		ch=getchar();
	}
    x=f?-x:x;
    return;
}
string s;
int pd(int x){
    if(s[x]!='A'&&s[x]!='E'&&s[x]!='I'&&s[x]!='O'&&s[x]!='U'&&s[x]!='Y')return 0;
    return 1;
}
int id,ans,len;
int main(){
    cin>>s;
    len=s.size();
    while(id<len&&!pd(id))id++;
	ans=id+1;
    for(int j=id+1;j<len;j++){
        if(pd(j))ans=max(ans,j-id),id=j;
    }
    cout<<max(ans,len-id)<<endl;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
char n;
long long now=1,ans;
int main()
{
	while(cin>>n)
	{
		if(n=='A'||n=='E'||n=='I'||n=='U'||n=='O'||n=='Y')ans=max(ans,now),now=1;
		else now++;
	}
	cout<<max(now,ans)<<endl;
}

#include<cstdio>
#include<cstdlib>
#include<cstring>
char st[10001];
int max,i,q=0,l,a[10001];
int main() {
	scanf("%s",&st);
	l=strlen(st);
	for(i=0; i<l; i++)
	if(st[i]=='A'||st[i]=='E'||st[i]=='I'||st[i]=='O'||st[i]=='U'||st[i]=='Y') {
		q++;
		a[q]=i+1;
	}
	for(i=1; i<=q; i++)
	if(a[i]-a[i-1]>max) max=a[i]-a[i-1];
	if(max==0) printf("%d",l+1);
	else {
		if(max<l+1-a[q]) max=l+1-a[q];
		printf("%d",max);
	}
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
const int N=10005;
char vowels[]={'A','E','I','O','U','Y'};
char word[N];
bool isvowel(char c)
{
	for(int i=0;i<6;i++)
	{
		if(c==vowels[i])
		{
			return true;
		}
	}
	return false;
}
int main()
{
	scanf("%s",&word[1]);
	int last=0;
	int l=strlen(word+1);
	int ans=0;
	for(int i=1;i<=l;i++)
	{
		if(isvowel(word[i]))
		{
			ans=max(ans,i-last);
			last=i;
		}
	}
	ans=max(ans,l+1-last);
	printf("%d\n",ans);
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
string p;
int a=-1,m;
int main()
{
	ios::sync_with_stdio(0);
    cin>>p;
    for(int x=0;x<p.size();x++)
        if(p[x]=='A'||p[x]=='E'||p[x]=='I'||p[x]=='O'||p[x]=='U'||p[x]=='Y')
            m=max(m,x-a),a=x;
    cout<<max(m,(int)p.size()-a);
    return 0;
}

#include <bits/stdc++.h>
using namespace std;

string s;
int ans,j=-1;

int main()
{
	cin>>s;
	int len=s.size();
	for(int i=0;i<len;i++)
		if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y') ans=max(ans,i-j),j=i;
	ans=max(ans,len-j);
	printf("%d",ans);

	return 0;
}

// qdd on May 6, 2018

#include <bits/stdc++.h>
using namespace std;

const int MAXN = 100 + 7;

char s[MAXN];
vector<int> pos;

int main()
{
    scanf("%s", s);
    int n = strlen(s);
    pos.push_back(0);
    for (int i = 0; i < n; i++)
    {
        if (s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y')
        {
            pos.push_back(i + 1);
        }
    }
    pos.push_back(n + 1);
    int res = 1;
    for (int i = 1; i < pos.size(); i++) res = max(res, pos[i] - pos[i - 1]);
    cout << res << endl;
    return 0;
}

#include <iostream>
#include <string>

using namespace std;

int main()
{
   int a, b, c, i, n;
   string s;
   cin >> s; a = 1;
   int max = 0;
   for(i = 0; i < s.length(); i++)
    {
      if(s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y')
{
       if(max < a)
          max = a;
       a = 0;
}
a++;
     }
    if (max < a)
        max = a;
   cout << max;
}

#include <bits/stdc++.h>
using namespace std;
string s;
char c[10]={'A','E','I','O','U','Y'};
int main(){
//	freopen("a.txt","r",stdin);
	cin>>s;
	// 只能搞AEIOUY
	int last=-1;
	int res=1;
//	int flag=0;
	for(int i=0;i<s.length();i++){
		for(int j=0;j<6;j++){
			if(s[i]==c[j]){
//				flag=1;
				res=max(res,i-last);
				last=i;
				break;
			}
		}
	}
	int len=s.length();
	res=max(res,len-last);
//	if(flag==0)res=s.length()+1;
	cout<<res<<endl;
	return 0;
}

// 733 A CF A. Grasshopper And the String

#include<bits/stdc++.h>
using namespace std;

int main()
{

	string s;
	cin>>s;

int t=s.size();

vector<int>v;
int i=-1;

while(++i<t)
{
	if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
	{
		v.push_back(i+1);

	}
}
int y=v.size();
for(i=y-1;i>0;i--)
{
	v[i]=v[i]-v[i-1];
}

sort(v.begin(),v.end());

if(v.size()!=0)
{
    if((v.size()==1)&&(v[v.size()-1]>(t-v[v.size()-1]+1)))
    cout<<v[v.size()-1];
    else
        cout<<t-v[v.size()-1]+1;

}
else
cout<<t+1;

return 0;

}
/*
string s;

cin>>s;
int l;

l=s.size();

int fv=-1;
int i=-1;
int sv=-1;

int counter=0;
int maxs=0;

while(++i<l)
{
	if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
	{
	if(fv==-1)
	fv=i;
	else
	{
	sv=i;
	counter=sv-fv;
	fv=i;
	if(counter>maxs)
		maxs=counter;
	}

	}

}
int ans;
if(sv==-1)
{
    ans=l-fv-1;
    if(ans>fv)
    {
        maxs=ans+1;
    }
    else
        maxs=fv+1;
}

if(fv==-1)
{

    maxs=l+1;
}
cout<<maxs;
return 0;

}
*/

#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>

using namespace std;

typedef long long ll;

int main()
{
	string s;
	cin >> s;
	//vector <char> gl = { 'A', 'E', 'I', 'O', 'U' , 'Y' };
	ll l = -1;
	ll otv = -1;
	for (int i = 0; i < s.size(); i++)
	{
		if (l >= 0)
		{
			if (s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y')
			{
				otv = max(otv, i - l);
				l = i;
			}
		}
		else l = i;
	}
	cout << otv;
	return 0;
}

#include<iostream>
#include<cstring>
using namespace std;
char s[110];
int main(){
	cin>>s;
	int st=-1;
	int en=-1;
	int maxn=-1;
	int ans=-1;
	for(int i=0;i<strlen(s);i++){
		if(s[i]=='A'||s[i]=='E'||s[i]=='U'||s[i]=='I'||s[i]=='E'||s[i]=='Y'){
			if(st==-1)st=i;
			else if(st!=-1&&en==-1)en=i;
			else {
				ans=en-st;
				if(ans>maxn)maxn=ans;
				st=en;
				en=i;
			}
		}
	}
	cout<<maxn<<endl;
}

 #include <algorithm>
#include <iterator>
#include <iostream>
#include <sstream>
#include <bitset>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <list>
#include <map>
#include <set>
#include <time.h>
#include <limits>
#include <math.h>
#include <climits>
#include <numeric>
#include <utility>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <functional>
#include<unordered_map>

using namespace std;
const double pi=acos(-1.0);
//memset ( a , 0 , n * sizeof(ll) ) ;

#define 	boost  		ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); // don't use if small inpts
#define 	endl 		'\n'
#define 	sl(n) 		scanf("%lld",&n)
#define		mp 			make_pair
#define 	pb 			push_back
#define 	ppb 		pop_back
#define 	fi 			first
#define 	se 			second
#define 	ll 			long long
#define 	ull 		unsigned long long
#define 	pii 		pair<int, int>
#define 	f(i,a,b) 	for(ll i = (ll)(a); i < (ll)(b); i++)
#define 	rf(i,a,b) 	for(ll i = (ll)(a); i > (ll)(b); i--)
#define 	ms(a,b) 	memset((a),(b),sizeof(a))
#define 	max(a,b) 	((a>b)?(a):(b))
#define 	min(a,b) 	((a<b)?(a):(b))
#define 	vec(g1) 	int temp;cin>>temp;g1,push_back(temp);
#define 	abs(x) 		((x<0)?(-(x)):(x))
#define 	MAX 		1000005
#define 	inf 		LLONG_MAX
#define 	MIN 		INT_MIN

//typedef
typedef pair<int, int> PII;
typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<PII> VII;
typedef vector<VI> VVI;
typedef map<int,int> MPII;
typedef set<int> SETI;
typedef multiset<int> MSETI;
typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int  uint64;

int mod = 1e9 + 7 ;
ll gcd(ll a , ll b){return b==0?a:gcd(b,a%b);}
ll powmod(ll a,ll b) {ll res=1;if(a>=mod)a%=mod;for(;b;b>>=1){if(b&1)res=res*a;if(res>=mod)res%=mod;a=a*a;if(a>=mod)a%=mod;}return res;}
// ll fac[200005];
// ll inverse(ll n){return powmod(n, mod-2);}
// ll nCr(ll n, ll r){return (fac[n] * inverse(fac[r]) % mod * inverse(fac[n-r]) % mod) % mod;}
////****************************************************************************************************************************************************************************************************************////
int main(){
	   string s;
	   cin>>s;
	   int curr=1;
	   int ans=1;
	   vector<int>g1;
	   for(int i=0;i<s.size();i++){
            if(s[i]=='A' || s[i]=='E' || s[i]=='O' || s[i]=='I' || s[i]=='U' || s[i]=='Y')g1.pb(i);
	   }
	   	   if(g1.size()!=0)ans=g1[0]-0+1;
	   if(g1.size()>1){
	   for(int i=0;i<g1.size()-1;i++){
	   	 curr=g1[i+1]-g1[i];
	   	 ans=max(ans,curr);
	   }
	   	 ans=max(ans,s.size()-g1[g1.size()-1]);
	   }
	   else if(g1.size()==1){
	   	 ans= max(g1[0],s.size()-g1[0]);
	   }
	   else if(g1.size()==0){
	   	 ans=s.size()+1;
	   }
	   cout<<ans<<endl;
  		return 0;
}

#include <iostream>
#include <cstdio>
#include <map>

using namespace std;

map<char, bool> mp;

int main(){
	mp['A'] = mp['E'] = mp['I'] = mp['O'] = mp['U'] = mp['Y'] = true;
	string str;
	while (cin >> str) {
		int pre = -1, maxx = 0;
		for (int i = 0; i < str.length(); ++i) {
			if (mp.count(str[i]) > 0) {
				maxx = max(i - pre, maxx);
				pre = i;
			}
		}
		cout << (maxx > 0 ? maxx : 2) << endl;
	}
	return 0;
}

#include <stdio.h>
#include <iostream>
#include <unordered_set>
#include <unordered_map>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <algorithm>
#include <cstdlib>
#include <math.h>       /* sqrt */
//#include <quadmath.h>
#include <iomanip>
#include <sstream>
#include <iterator>
using namespace std;

void GrasshopperAndtheString() {
    string lawn; cin >> lawn;
    int maxLen = 0;
    int currentLen = 0;
    for (int i = 0; i< lawn.size(); ++i ) {
        if ( lawn[i] == 'A' ||
                lawn[i] == 'E' ||
                lawn[i] == 'I' ||
                lawn[i] == 'O' ||
                lawn[i] == 'U' ||
                lawn[i] == 'Y' ) {
            maxLen = max(maxLen, currentLen);
            currentLen = 1;
        } else {
            currentLen ++;
        }
    }
    maxLen = max(maxLen, currentLen);
    cout << maxLen;
}

int main() {
    GrasshopperAndtheString();

}

#define _CRT_SECURE_NO_WARNINGS
#include<map>
#include<stdio.h>
#include<iostream>
#include<set>
#include<algorithm>
#include<stack>
#include<queue>
#include<string>
#include<vector>
#include<math.h>
using namespace std;
typedef long long int LL;

int main() {
	string str;
	cin >> str;
	int max = 0;
	int start = 0;
	for (int i = 1;i < str.length();i++) {
		if (str[i] == 'I' || str[i] == 'E' || str[i] == 'A' || str[i] == 'O' || str[i] == 'U'|| str[i] == 'Y') {
			if (max < i - start) {
				max = i - start;
			}
			start = i;
		}
	}
	if (str.length() - start > max) {
		max = str.length() - start;
	}
	cout << max << endl;
}

#include <bits/stdc++.h>
#define LL long long
#define inf 2147483647
#define N 105
using namespace std;
int f[N], ans;
char s[N];
int pd(char a){
	if(a == 'A' || a == 'E' || a == 'I' || a == 'O' || a == 'U' || a == 'Y') return 1;
	return 0;
}
int main(){
	int i, j, n, x;
	memset(f, 1, sizeof(f));
	scanf("%s", s + 1);
	n = strlen(s + 1);
	x = 1;
	for(i = 2; i <= n; i++){
		if(pd(s[i])){
			ans = max(ans, i - x);
			x = i;
		}
	}
	printf("%d", ans);
	return 0;
}

#include <bits/stdc++.h>
using namespace std;

#define  int        long long int
 #define    sp(x)                 setprecision(x)
#define    bp(x)           __builtin_popcount(x)
 #define  ld         long double
 #define  f(i,j,n)            for(int i = j; i <= n; i++)
#define  r(i,n,j)       for(int i = n; i >= j; i--)
 #define  all(container)       container.begin() , container.end()
#define  sz(container)   (int)container.size()
 #define  ff             first
#define  ss             second
 #define  pii      pair <int , int>
#define  sp(x)       setprecision(x)
 #define  endl    "\n"
#define  mod  1000000007
 #define  pb    push_back
#define  mp    make_pair
 #define  T     int ttt; cin >> ttt; while(ttt--)
#define fast ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);

int power(int x, int y, int p)
{
    int res = 1;
    x = x % p;
    if (x == 0) return 0;
    while (y > 0)
    {
        if (y & 1)
            res = (res*x) % p;
        y = y>>1;
        x = (x*x) % p;
    }
    return res;
}

int32_t main()
{
    fast
    string s;
    cin>>s;
    int l=-1,ans=0;
    f(i,0,sz(s)-1)
        if(s[i]=='A' || s[i]=='E' || s[i]=='I' || s[i]=='U' || s[i]=='O')
        {
            ans=max(ans,i-l);
            l=i;
        }
    ans=max(ans,sz(s)-l);
    cout<<ans;
}

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string a;
    cin >> a;
    int maxJ = 0, imaxJ = -1, k = 0;
    for (int i = 0; i < a.size(); i++)
    {
        if (a[i] == 'A' || a[i] == 'E' || a[i] == 'I' ||
            a[i] == 'O' || a[i] == 'U' || a[i] == 'Y')
        {
            if (i - imaxJ > maxJ) maxJ = i - imaxJ;
            imaxJ = i;
        }
    }
    for (int i = a.size() - 1; i >= 0; i--)
    {
        k++;
        if (a[i] == 'A' || a[i] == 'E' || a[i] == 'I' ||
            a[i] == 'O' || a[i] == 'U' || a[i] == 'Y') break;
    }
    if (maxJ > k) cout << maxJ;
    else cout << k;
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
bool vowel (char x){
    if(x == 'A'||x=='O'||x=='I'||x=='U'||x=='E'||x=='Y')
        return true;
    return false;
}
int main()
{
    string x ;
    cin >> x ;
    int vo = 0 ;
    for(int i = 0 ; i < x.length();i++){
        if(vowel(x[i]))
            vo++;
    }if(vo == 0){
        cout << x.length()+1 << endl;
    }
    else if(vo == 1){
        int ind = 0 ;
        for(int i = 0 ; i < x.length();i++){
            if(vowel(x[i])){
                ind = i;
                break;
            }
        }
        int s = x.length();
        cout << max(( s- ind) , (ind+1-0) ) << endl;
    }
    else {
        int start = -1 , ind = 0 ;
        int mini = 0;
        int counter = 0;
        for(int i = 0 ; i < x.length();i++){
            if(vowel(x[i])){
                if(start == 0 && counter!=0 )
                    start = i;
                else
                    ind = i ;
                counter++;
            }
            if(ind > 0||counter==1){
                int ans =  ind - start ;
                mini = max(ans,mini);
                start = ind ;
                ind = 0 ;
            }
        }
        int last ;
        for(int i = 0 ; i < x.length(); i++){
            if(vowel(x[i]))
                last = i;
        }
        int lans = x.length() - last;
        mini = max(mini,lans);
        cout << mini << endl;
    }
    return 0;
}

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

bool
isvowel(char c)
{
	return(c=='A'||c=='E'||c=='I'||c=='O'||c=='U'||c=='Y');
}

int main()
{
	string s;
	cin>>s;
	vector<int>v;

	int cnt=0;
	for(int i=0;i<s.length();i++)
	{
		if(isvowel(s[i]))
		{
			i++;
			cnt=1;
			while(!isvowel(s[i]))
			{
				cnt++;
				i++;
			}
			v.push_back(cnt);
		}
	}

	sort(v.begin(),v.end());

	cout<<v.size()-1;
}

#include <iostream>
#include <string.h>

using namespace std;

char s[101];
int i, nr, maxim, maxim2, k;

int main()
{
    cin.get(s,101);
    maxim=0;
    nr=0;
    for(i=0; i<=strlen(s)-1; i++)
        if(strchr("AEIOUY", s[i])==0)
                 maxim=strlen(s);
    for(i=0; i<=strlen(s)-1; i++){
        nr++;
        if(strchr("AEIOUY", s[i])!=0){
                   if(nr>maxim)
                       maxim=nr;
        nr=0;
        }
       }
    for(i=strlen(s)-1; i>=0; i--){
        k++;
        if(strchr("AEIOUY", s[i])!=0)
                               maxim2=k;
        break;
    }
    if(maxim>maxim2)
         cout<<maxim;
       else
         cout<<maxim2;
    return 0;
}

#include <iostream>

using namespace std;

int main()
{  string ch;
       cin>>ch;
       int n=ch.size();

    int tab[n],j,i=0,max=0;
j=1;
    for(i=0;i<n;i++){

        if ((ch[i]=='A')||(ch[i]=='Y')||(ch[i]=='U')||(ch[i]=='E')||(ch[i]=='O')||(ch[i]=='I')){

            tab[j]=i;
            j=j+1;

        }

    }

if (j>1){
    tab[0]=0;
    tab[j]=n-1;
n=0;
    max=tab[1]-tab[0];
    for(i=0;i<j;i++)
    {
      n=tab[i+1]-tab[i];

         if (n>max)
         {
            max=n;
        }
    }
}
else {
    max=0;
}
    cout<<max+1;

    return 0;
}

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    string a;
    int i,s=1,mmax=0;
    cin>>a;
    for(i=0;i<a.size();i++)
    {
        if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U'||a[i]=='Y')
        {
            if(mmax<i-s)
                mmax=i-s;
            s=i;
        }
    }
    cout<<mmax;
    return 0;
}

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s1;int z=0,f=0,count=0;
    cin>>s1;
    f=s1.length();
    for(int i=1;i<=f;i++)
       {

    if((s1[i-1]=='A')||(s1[i-1]=='E')||(s1[i-1]=='I')||(s1[i-1]=='O')||(s1[i-1]=='U'))
            {
                if(count==0)
            {
                z=i;
                count=i;
            }
    else
    {
        if(i-count>z)
            z=i-count;
        count=i;
    }
}
       }

        if(f-count>z)
            cout<<f+1-count;
       else
cout<<z;
return 0;
}

#include <iostream>

using namespace std;

int main(void)
{
	int cnt = 0, max = 0, i = 0;
	char v[101];

	gets(v);

	while(i != 102)
	{
		cnt++;

		if(v[i] == 'A' || v[i] == 'E' || v[i] == 'O' || v[i] == 'Y' || v[i] == 'U' || v[i] == 'I' || v[i] == '\0')
		{
			if(cnt > max)
				max = cnt;
			cnt = 0;
		}

		i++;
	}

	cout<<max<<endl;
}

#include <iostream>
#include <cstdio>
#include <map>

using namespace std;

map<char, bool> mp;

int main(){
	mp['A'] = mp['E'] = mp['I'] = mp['O'] = mp['U'] = mp['Y'] = true;
	string str;
	while (cin >> str) {
		int pre = -1, maxx = 0;
		for (int i = 0; i < str.length(); ++i) {
			if (mp.count(str[i]) > 0 || i == str.length() - 1) {
				maxx = max(i - pre, maxx);
				pre = i;
			}
		}
		cout << (maxx > 0 ? maxx : str.length() + 1) << endl;
	}
	return 0;
}

#include <bits/stdc++.h>
#define MOD 1000000007
#define pb push_back
#define MAX 1e7+5
#define PI 3.141592653589793238462643383279502884197169399
#define forn(i,s,n) for(int i=s;i<n;i++)
#define fornr(i,s,n) for(int i=n ; i>s;i--)

typedef  long long ll;
using namespace std;

int main(){
     ios_base::sync_with_stdio(0);
	cin.tie(NULL), cout.tie(NULL);

  int n = -1 , cnt=-1; string s ;
  cin >>s;
  forn(i , 0 , s.size())if(s[i]=='A' || s[i] == 'E' || s[i] == 'I' || s[i]== 'O' || s[i] =='U' || s[i]=='Y')
{  n=max(n , cnt); cnt=1; }
  else cnt++;
  cout << n;
}

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <queue>
#include <utility>
#include <vector>
#include <string>

using namespace std;

int main(){
	string a;
	cin >> a;
	int cnt = 0;
	int Max = 0;
	int init = -1;
	for (int i = 0; i < a.size(); i++){
		if (a[i] == 'A' || a[i] == 'E' || a[i] == 'I' || a[i] == 'O' || a[i] == 'U')
		{
			cnt = i - init;
			init = i;
			Max = max(Max, cnt);
		}
	}
	if (init == -1)
		Max = a.size()+1;
	cout << Max;
}

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string Grasshopper;
	cin >> Grasshopper;
	int maxjum = 0, step = 0;
	for (int i = 0;i < Grasshopper.size();i++)
	{
		if (Grasshopper[i] == 'A' ||
			Grasshopper[i] == 'E' ||
			Grasshopper[i] == 'I' ||
			Grasshopper[i] == 'O' ||
			Grasshopper[i] == 'U' ||
			Grasshopper[i] == 'Y')
		{
			step++;
			if (step > maxjum)
				maxjum = step;
			step = 0;
		}
		else
			step++;
	}
	if (maxjum == 0)
		maxjum = step + 1;
	cout << maxjum << endl;
	return 0;
}

#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include<bits/stdc++.h>
#include<windows.h>
#define pi acos(-1)
#define E 2.71828
#define mp make_pair
#define pb push_back
#define sz(s) s.length()
#define sb substr
#define mi(x) memset((int)(x),0,sizeof((x)))
#define ms(x) memset((string)(x),"",sizeof(x))
#define mc(x) memset((char)(x),'\0',sizeof(x))
#define for0(i,n) for(int i=0;i<(int)(n);i++)
#define maxn 1e9
#define eps 1e-9
#define eightqueen 92
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pii;
typedef vector<int> vi;
int absi(int x)
{
	if(x>=0)
		return x;
	return -x;
}
double pod(double x,double n)
{
	for(int i=0;i<n;i++)
		x*=x;
	return x;
}
bool isvovel(char s)
{
	if(s=='A'||s=='E'||s=='I'||s=='O'||s=='U'||s=='Y')
	return true;
	return false;
}
int main(int argc,char **argv)
{
	string s;
	cin>>s;
	int a=0,b,ans=0,error=0;
	for(int i=0;i<s.length();i++)
	{
		if(isvovel(s[i])==true)
		{
			b=i;
			if(b-a>ans)
			ans=b-a;
			a=b;
		}
		else
		error++;
	}
	if(error==s.length())
	cout<<s.length();
	else
	cout<<ans;
	return 0;
}

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

string s;

bool check(char c)
{
	return (c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U' || c == 'Y');
}

int main()
{
	cin >> s;
	int maxlen = 0;
	int cnt = 0;
	int len = s.length();
	int i = 0;
	while (len > 0) {
		cnt = 1;
		if (check(s[i])) {
			++i;
			--len;
			while (!check(s[i]) && len > 0) ++cnt, ++i, --len;
		}
		else {
			++i;
			--len;
			++cnt;
		}
		if (cnt > maxlen) maxlen = cnt;
	}

	cout << maxlen << endl;

	return 0;
}

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(void)
{
	char s[105];
	cin >> s;
	int len = strlen(s);
	int start = 0, end, minnum, n = 1;
	for (int i = 0; i < len; i++)
		if (s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y')
		{
			end = i;
			if (n)
			{
				minnum = max(minnum, end - start);
				minnum++;
				n = 0;
			}
			start = i;
		}
	if (start == 0)
		minnum = len + 1;
	else if (end != len - 1)
		minnum = max(minnum, len - start);
	cout << minnum;
}

#include<bits/stdc++.h>
using namespace std;
char a[25000];
int main() {
	cin>>a;
	int cd=strlen(a);
	int nn=0,qs=0;
	for(int i=0; i<cd; i++) {
		if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U'||a[i]=='Y'||i==cd-1) {
			if(nn<i+1-qs)
				nn=i+1-qs;
			qs=i+1;
		}
	}
	if(qs==0)
		nn=cd+1;
	cout<<nn;
	return 0;
}

#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
#include <map>
#include <vector>
#include <utility>
#include <iomanip>
#include <set>
#include <iterator>
using namespace std;
void Solve();
int main()
{
	Solve();
	//system("pause");
	return 0;
}
void Solve()
{
    int ll=0;
	string str;
	cin >> str;
	int c = 0;
	int Max = 0, res = 0;
	for (int i = 0; i < str.size(); i++)
	{
		if (str[i] == 'A' || str[i] == 'E' || str[i] == 'O' || str[i] == 'I' || str[i] == 'U' || str[i] == 'Y')
		{
			c = i + 1;
			Max = c;
			break;
		}
	}
	//cout << c << endl;
	//cout << Max << endl;
	int count = 0;
	for (int i = 0; i < str.size(); i++)
	{
		if (str[i] == 'A' || str[i] == 'E' || str[i] == 'O' || str[i] == 'I' || str[i] == 'U' || str[i] == 'Y')
		{
			count++;
		}
	}
	if (count==0)cout<<str.length();
	else if (c == 0 && count >= 1)
		cout << 1 << endl;
	else if (c == str.size() - 1)
		cout << (int)str.size() + 1 << endl;
	else
	{
		int i = c-1;
		for (i  ; i < str.size(); i++)
		{
			if (str[i] == 'A' || str[i] == 'E' || str[i] == 'O' || str[i] == 'I' || str[i] == 'U' || str[i] == 'Y')
			{
				res = i - c;
				c = i;
				i = c + 1;
			}
			if (i == str.size()-1)
			{
				res = (str.length()) - c;

			}
		//	cout << c << endl;
			//	cout << res << " " << Max << endl;
			Max = max(res, Max);
		}

		if (count == 0)
			cout << 0 << endl;
		else if (count == str.length())
		cout << 1 << endl;
		else
			cout << Max << endl;
	}

}

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main(){
	string s,vowel="AEIOUY";
	cin >> s;
	vector<int> vv;
	for(int i=0; i<s.length(); ++i){
		if(vowel.find(s[i]) != string::npos)
			vv.push_back(i);
	}
	if(vv.size() == 0){
		cout << s.length()+1;
		return 0;
	}
	int mm = 0;
	for(int i=0; i<vv.size()-1; ++i){
		if(vv[i+1]-vv[i] > mm)
			mm = vv[i+1]-vv[i];
	}
	cout << (mm > s.size()-vv[vv.size()-1] ? mm : s.size()-vv[vv.size()-1]);
}

#include<bits/stdc++.h>

using namespace std;

int main(){

    int maxVal = 1;
    char arr[] = {'A', 'E', 'I', 'O', 'U','Y'};
    string n;
    vector<char> a;

    cin >> n;

    a.assign(arr, arr+6);
    sort(a.begin(), a.end());

    if(n.size() == 1){
        if(binary_search(a.begin(), a.end(), n[0]))
            cout << 1;
        else
            cout << 2;
        return 0;
    }

    for(int i = 0; i < n.size(); i++){
            if(binary_search(a.begin(), a.end(), n[i]) || i == 0){
                for(int j = i+1; j < n.size(); j++){
                    if(binary_search(a.begin(), a.end(), n[j])){

                        if(j-i > maxVal)
                            maxVal = j-i;
                        if(i == 0 && j-i != 1)
                            maxVal++;
                        break;
                    }

                    if(j == n.size() -1){
                        if(j-i + 2 > maxVal)
                            maxVal = j-i +1;
                        if(i == 0)
                            maxVal++;
                    }
                }
            }

    }

    cout << maxVal;

    return 0;
}

/******************************************
--------***ID:ADNAN KISMETOVIC***----------
----***USER:kismetovic-codeforces.com***---
*******************************************/
#include <bits/stdc++.h>

using namespace std;

int main(){
	int position,maksposition=0;
	string s;
	cin>>s;
	if(s.length()==1 && s[0]=='A' or s[0]=='E' or s[0]=='I' or s[0]=='O' or s[0]=='U' or s[0]=='Y') return cout<<1,0;
	if(s.length()==1) return cout<<2,0;
	for(int i=0;i<s.length();i++){
		for(int j=i+1;j<s.length();j++){
			if(s[j]=='A' or s[j]=='E' or s[j]=='I' or s[j]=='O' or s[j]=='U' or s[j]=='Y'){
				position=j-i;
				if(position>maksposition){
					maksposition=position;
					i=j;
					break;
				}
			}
		}
	}
	cout<<maksposition;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
const int MAX_N = 100 + 5;
int main()
{
    char ch[MAX_N];
    int d[MAX_N];
    memset(d,0,sizeof(d));
    d['A']=d['E']=d['I']=d['O']=d['U']=d['Y']=1;
    ch[0]='0';
    for(int i=1;i<=100;i++){
        scanf("%c",&ch[i]);
        if(ch[i]=='\n') {
            ch[i]='\0';
            break;
        }
    }

    int n=strlen(ch)-1,ans=-1;

    for(int i=1;i<=n;i++){
        if(d[ch[i]]) {
            ans=i;
            break;
        }
    }
    if(ans==-1) {
        cout<<n+1<<endl;
        return 0;
    }

    int last=ans;

    for(int i=ans+1;i<=n;i++){
        if(d[ch[i]]) {
            ans=max(ans,i-last);
            last=i;
        }
    }

    cout<<max(ans,n+1-last)<<endl;
}

#include<stdio.h>
int main()
{
	int n,i;int max=0;
	char arr[101]	;
	gets(arr);

    for(i=0;arr[i]!='\0';i++)
    {
    	if(arr[0]==arr[i]&&(i-max)>max)
    	max=i-max;
	}
	if(max==0)
	max++;
	printf("%d",max);
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
	char a[110];
	scanf("%s",a);
    int len=strlen(a),Max=-0x7fffffff,las=-1,lal=-1;
	for(int i=0;i<len;i++)
	{
		if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U')
			if(Max<=i-las) Max=i-las,las=i;
	}
	for(int i=len-1;i>=0;i--)
	{
		if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U')
		{//again
			lal=i;
			break;
		}
	}
	lal=len-lal;
	if(lal>Max) Max=lal;
	cout<<Max<<endl;//
}

// 733 A CF A. Grasshopper And the String

#include<bits/stdc++.h>
using namespace std;

int main()
{

string s;

cin>>s;
int l;

l=s.size();

int fv=-1;
int i=-1;
int sv=-1;

int counter=0;
int maxs=0;

while(++i<l)
{
	if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
	{
	if(fv==-1)
	fv=i;
	else
	{
	sv=i;
	counter=sv-fv;
	fv=i;
	if(counter>maxs)
		maxs=counter;
	}

	}

}

cout<<maxs;
return 0;

}

#include <iostream>
#include <cstdio>
#include <map>

using namespace std;

map<char, bool> mp;

int main(){
	mp['A'] = mp['E'] = mp['I'] = mp['O'] = mp['U'] = mp['Y'] = true;
	string str;
	while (cin >> str) {
		int pre = -1, maxx = 0;
		for (int i = 0; i < str.length(); ++i) {
			if (mp.count(str[i]) > 0) {
				maxx = max(i - pre, maxx);
				pre = i;
			}
		}
		cout << (maxx > 0 ? maxx : 2) << endl;
	}
	return 0;
}

#include<iostream>
#include<map>
#include<string>
#include<stdio.h>
#include<memory.h>
#include <queue>
#include <deque>
#include<algorithm>
#pragma warning (disable : 4996)
#include<set>
#include <cmath>
#include<utility>
using namespace std;

bool vowel(char ch)
{
	return (ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'Y' || ch == 'U');
}

 int main()
{
	//freopen("in.txt", "r", stdin);

	char s[105];
	scanf("%s",s);
	int l = strlen(s) ,a=0 ,mx=-1;

	for (int i = 0; i < l ; ++i)
	{
		if (!vowel(s[i])) continue;

		if (a > -1) { mx = max(i - a, mx);  a = -1; }
		else a = i;

	}
	if ( a >-1 ) mx = max(l - a, mx);

	printf("%d\n", mx);

	return 0;}

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string ch;
    int maxleap  = 0,posAct = 0;
    cin >> ch;
    for (int i = 0 ; i < ch.size(); i++){
        if (ch[i] == 'A' || ch[i] == 'E' || ch[i] == 'U' || ch[i] == 'I' || ch[i] == 'O' || ch[i] == 'Y'){
            if ((i - posAct) > maxleap){
                maxleap = (i - posAct) ;
            }
            posAct = i ;
        }
    }
    if (ch.size() - posAct > maxleap){maxleap = ch.size() - posAct;}
    cout << maxleap;
    return 0;
}

#include<iostream>
#include<cstdio>
#include<sstream>
using namespace std;
int cur, Max;
string a;
bool ok(char a)
{
	if (a == 'A' || a == 'E' || a == 'I' || a == 'O' || a == 'U' || a == 'Y') return true;
	else return false;
}
int main()
{
	cin >> a;
	cur = -1;
	Max = -1;
	for (int i = 0; i < a.length(); i++)
	{
		if (ok(a[i]))
		{
			if (Max < (i - cur)) Max = i - cur;
			cur = i;
		}
	}
	if (Max < (a.length() - cur)) Max = a.length() - cur;
	cout << Max;
	return 0;
}

#include<bits/stdc++.h>
using namespace std;
char arr[1000];
int len,maxn=1;
int find(int n)
{
	for(int i=n+1;i<len;i++)
	{
		if(arr[i]=='A'|arr[i]=='E'|arr[i]=='I'|arr[i]=='O'|arr[i]=='U')
			return i-n;
	}
}
int main()
{
	cin>>arr;
	len=strlen(arr);
	for(int i=0;i<len;i++)
	{
		if(arr[i]=='A'|arr[i]=='E'|arr[i]=='I'|arr[i]=='O'|arr[i]=='U')
			maxn=max(maxn,find(i));
	}
	cout<<maxn;
	return 0;
}

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
using namespace std;
map<int,char>mp;
int main(){
    char str[1000];
    while(gets(str)){
        mp.clear();
        int len=strlen(str);
        int i,j;
        int ans=0,t=0;
        for(i=0;i<len;i++){
            if(str[i]=='A'||str[i]=='E'||str[i]=='I'||str[i]=='O'||str[i]=='U'||str[i]=='Y'){
                mp[i+1]=str[i];
            }
        }
        int a[1001];
        memset(a,0,sizeof(a));
        map<int,char>::iterator it;
        for(it=mp.begin();it!=mp.end();it++){
            a[t++]=it->first;
        }
        ans=a[0];
        a[t]=len+1;
        if(t==0)
        ans=max(ans,a[t]);

        int sum;
        for(i=1;i<=t;i++){
            j=i+1;
            sum=a[j]-a[i];
            ans=max(ans,sum);
        }
        cout<<ans<<endl;
    }
}

// ConsoleApplication1.cpp: 定义控制台应用程序的入口点。
//

//#include "stdafx.h"

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <stdlib.h>
#include <string.h>
#include <string>

#include <ctype.h>
#include <set>
#include <map>
#include <vector>
#include <stack>
#include <queue>
#include <math.h>
using namespace std;
int main()
{
	char *s = (char*)malloc(sizeof(char) * 101);
	scanf("%s", s);
	char a[6] = { 'A', 'E', 'I', 'O', 'U' , 'Y' };
	int b[200] = { 0 };
	int i;
	int start = 0, end = 0;
	int turn = 0;
	int distance = 0,max1 = 0;
	for (i = 0; s[i] != '\0'; i++)
	{
		if ((s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y')&&turn == 0)
		{
			start = i;
			turn = 1;
			continue;
		}
		if ((s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y') && turn == 1)
		{
			end = i;
			distance = end - start;
		    start = end;
			//turn = 0;
			//continue;
		}

		if (max1 < distance)
		{
			max1 = distance;
		}

	}
	cout << max1 << endl;
    return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <string>
#include <set>
#include <vector>
#include <stack>
#include <deque>
#include <math.h>
#include <map>
#include <fstream>
#include <iomanip>
#include <queue>

using namespace std;

typedef long long ll;
#define mp make_pair
#define N 1000
#define INF 10E17

string s;

const string g = "EUIOA";

int main()
{
	cin >> s;
	int l = s.length();
	int pos = -1, prev = -1, m = 0;
	for (int i = 0; i < l; ++i)
	{
		for (int j = 0; j < g.length(); ++j)
		{
			if (s[i] == g[j])
			{
				prev = pos;
				pos = i;
				m = max(pos - prev, m);
			}
		}
	}
	cout << max(m, l - pos);
	cin >> m;
	return 0;
}

#include<bits/stdc++.h>

using namespace std;

int main()
{
	string a;
	cin >> a;
	int last = 0, cur = 0, mx = 0, flag = 0;
	int len = a.length();
	if(len == 1) {
		int i = 0;
		if(a[i] == 'A' || a[i] == 'I' || a[i] == 'O' || a[i] == 'U' || a[i] == 'Y' || a[i] == 'E') cout << "1\n";
		else cout << "2\n";
		return 0;
	} else if(len == 0) {
		cout << "0\n";
		return 0;
	}
	for(int i = 0; i < len; i++) {
		if(a[i] == 'A' || a[i] == 'I' || a[i] == 'O' || a[i] == 'U' || a[i] == 'Y' || a[i] == 'E') {
			mx = max(mx, i-last);
			last = i;
		}
	}
	mx = max(mx, len-last);

	if(last == 0) {
		mx++;
	}
	cout << mx << endl;
	return 0;
}

#include <bits/stdc++.h>
#include <bits/stdc++.h>

#define forn(i, n) for (int i = 0; i < n; i++)
#define ford(i, n) for (int i = n - 1; i > -1; i--)
#define forl(i, l, r) for (int i = l; i <= r; i++)
#define vc vector
#define f first
#define s second
#define pb(i) push_back(i)
#define mx(ar, n) (*max_element(ar, ar + n))
#define mn(ar, n) (*min_element(ar, ar + n))

using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef string S;
typedef int I;

int x = 1000001 ;
bool prime[1000001] ;

void sev(){

    for(int i = 2; i*i <= x; i++)
    {

        for(int j = i*2; j <= x; j+=i)
        {
            prime[j] = true ;
        }

    }

}

int main()
{
    string s ;
    cin >> s ;
    int x = s.size();
    int c=0 , v=0  , f = 0;
    forn(i,x){
        if(s[i] == 'A' or s[i] == 'E' or s[i] == 'I' or
           s[i] == 'O' or s[i] == 'Y' or s[i] == 'U'){
               c = max(i+1 - v, c) ;
            //    cout << i-v <<  " - " <<  s[i] <<endl ;
               v = i+1;
               f=1 ;

           }
    }
    c = max(c , x-v);
    if(f == 0){
        cout << x + 1<< endl ;
    }else{
        cout << c << endl ;
    }
    return 0 ;
}

// NVTQVNLGWFDBCBKSDLTBGWBMNQZWZQJWNGVCTCQBGWNTYJRDBPZJHXCXFMIXNRGSTXHQPCHNFQPCMDZWJGLJZWMRRFCVLBKDTDSC

#include<bits/stdc++.h>
using namespace std;
main()
{
    int i,j,x=0,y=-5,k=0;
    string s;
    cin>>s;
    for(i=0;i<s.length();i++)
    {
        if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='Y')
        {
            if(i-x>=y)
                y=i-x;
            x=i;
        }
    }
    if(y>0)
    cout<<y;
    else cout<<"1";
}

#include<stdio.h>
#include<iostream>
using namespace std;
string b,c;

int loc(string a){
    int n = a.length();
    for(int  i = 0; i < n; i++)
        if(a[i] == 'A' ||a[i] == 'E' ||a[i] == 'I' ||a[i] == 'Y' ||a[i] == 'U' ||a[i] == 'O' )
            b += a[i];
    int temp=0,m=b.length();
        for(int i = 0; i < m; i++ )
            if(b[i] != b[i+1])
                c+=b[i];

}

int main(){
    string a;   cin>>a;
    loc(a);
   if(c.length()==1)    cout<<1<<endl;
   else cout<<c.length()-1<<endl;

}

#include<bits/stdc++.h>
using namespace std;
bool ehvogal(char a){
	return(a == 'A' || a == 'E' || a == 'I' || a == 'O' || a == 'U' || a == 'Y');
}
int main(){
	string s;
	cin >> s;
	int p = -1, maior = INT_MIN;
	for(int i = 0; i < s.size(); i++){
		if(ehvogal(s[i])){
			if(p == -1){
				p = i;
			}
			else{
				if(i-p > maior){
					maior = i-p;
				}
			}p = i;
		}
	}
	if(p == -1){
		cout << 0 << endl;
	}
	else if(maior == INT_MIN){
		cout << 1 << endl;
	}else{
		cout << maior << endl;

	}

	return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
	string n;
	cin >> n;
	int s=0;
	int m = 0;
	for (int i = 0; i < n.size();i++)
	{
		if(n[i]=='A' || n[i]=='E' || n[i]=='U' || n[i]=='Y' || n[i] =='O' || n[i] == 'I')
		{
			m = max(m,i - s - 1);
			s = i;
		}
	}
	cout<< 1 + m;
}

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

bool
isvowel(char c)
{
	return(c=='A'||c=='E'||c=='I'||c=='O'||c=='U'||c=='Y');
}

int main()
{
	string s;
	cin>>s;
	vector<int>v;

	int cnt=0;
	for(int i=0;i<s.length();i++)
	{
		if(isvowel(s[i]))
		{
			i++;
			cnt=1;
			while(!isvowel(s[i]))
			{
				cnt++;
				i++;
			}
			v.push_back(cnt);
		}
	}

	sort(v.begin(),v.end());

	cout<<v.size()-1;
}

	/*
	   Author: Shivam Shukla
	   Problem URL: https://codeforces.com/problemset/problem/733/A
	*/
	#include<bits/stdc++.h>
	using namespace std;

	typedef long long ll;
	typedef pair<int,int> pii;
	typedef pair<ll,ll> pll;
	typedef vector<pair<ll,ll> > vpll;

	const int MOD=1e9+7;
	const int MAX=1e5+5;
	const double PI= acos(-1.0);
	const long double EPS=1e-10;
    const int64_t INF=1e18+10;

	#define fastio() ios_base::sync_with_stdio(false);cin.tie(0), cout.tie(0)
	#define trace(...) " [" << #__VA_ARGS__ ": " << (__VA_ARGS__) << "] "
	#define all(x) x.begin(),x.end()
	#define rall(x) x.rbegin(),x.rend()

	#define vl vector<ll>
	#define vs vector<str>
	#define vc(x) vector<x>
	#define mapll map<ll,ll>
	#define mapib map<int,bool>
	#define mapiv map<int,vector>
	#define mapsi map<string,int>
	#define repa(i,n) for(ll i=0;i<n;i++)
	#define dowa(i,n) for(ll i=n;i>=0;i--)
	#define reps(i,j,k,s) for(ll i=j;i<k;i+=s)
	#define downs(i,j,k,s) for(ll i=j;i>=k;i-=s)
	#define trv(i,x) for(auto i:x)
	#define pb push_back
	#define sz(x) (int)x.size()

	#define ff first
	#define ss second
	#define str string
	#define dub double
	#define pqmax priority_queue<ll>
	#define pqmin priority_queue<ll,vl,greater<ll> >

    template<typename t> t lcm(t a, t b) {return (a*b)/__gcd(a,b);}
    template<typename t> t gcd(t a, t b) {return __gcd(a,b);}
    template<typename t> t mul_mod(t a, t b, t m){t res=((a%m)*(b%m)%m); return res;}
    template<typename t> t add_mod(t a, t b, t m){t res=((a%m)+(b%m))%m; return res;}
    template<typename t> t pow(t a,t b,t m) {t res=1;while(b){if(b&1) res=mul_mod(res,a,m);a=mul_mod(a,a,m), b>>=1;} return res%m;}
    template<typename t> vc(t) num_vec(t num) {t res; while (num) res.pb(num%10), num/=10; return res;}
    template<typename t> t vec_num(t vec) {t res=0; ll mul=1; repa(i,sz(vec)) res=vec[i]*mul, mul*=10; return res;}

	int32_t main(int argc,char** argv){
		fastio();
		auto tstart= clock();

		#ifndef ONLINE_JUDGE
		 freopen("/root/Desktop/Competitive Programming/input.txt","r",stdin);
	     freopen("/root/Desktop/Competitive Programming/output.txt","w",stdout);
	     freopen("/root/Desktop/Competitive Programming/error.txt","w",stderr);
	    #endif

	    /* Code Here */
	    str js; cin>>js;

	    int curr=-1, prev=-1, mx=numeric_limits<int>::min();
	    repa(i, js.length()){
	    	if(js[i]=='A' || js[i]=='E' || js[i]=='I' || js[i]=='O' || js[i]=='U' || js[i]=='Y'){
	    		prev=curr, curr=i;
	    		mx=max(mx, curr-prev);
	    	}
	    	//cout<<prev<<" "<<curr<<endl;
	    }
	    mx=max(mx, curr-prev);

	    if(curr==-1 && prev==-1) mx=js.length()+1;
	    cout<<mx<<endl;
	    cerr<<setprecision(2)<<fixed<<"Time elapsed: "<<(double)(clock() - tstart)/CLOCKS_PER_SEC<<endl;
	    return 0;
	}

		// THIS IS ABU-HIJLEH ... DONT TRY TO UNDERSTAND MY SOLUTION ... I DONT UNDERSTAND IT :D
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <string>
using namespace std ;

int main()
{
	int max=0, now=0 ;
	string s ;
	cin >> s ;
	for(int i=0;i<s.length();i++)
	{
		if(s[i]=='A'||s[i]=='O'||s[i]=='U'||s[i]=='I'||s[i]=='E'||s[i]=='Y'){
			if(i-now>max)
			max = i-now ;
			now = i;
		//	cout << max <<endl ;
		}

	}
	cout << max << endl;

	return 0;
}

#include <iostream>
using namespace std;

int main()
{
	string s, s1 = "AEIOUY";
	int maxi = 0, summ = 0;
    cin >> s;
    for(int i = 0; i < s.size(); i++) {
        if((int)s1.find(s[i] == -1)) {
            if(maxi < summ) maxi = summ;
            summ = 0;
        }
        else
            summ++;
    }
    cout << max(maxi, summ) + 1;
}

#include <iostream>
#include<bits/stdc++.h>
using namespace std;

int main() {
	string s;
	cin>>s;
	int l=s.size();
	int t=1,m=0,j=0;
int z=0;
	for(int i=0;i<l;i++)
	{
	    if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U')
	    {
	        t= i+1-j;
	         j=i+1;
	        if(t>m)
	        m=t;
	        z++;
	    }

	}
	if(z==0)
	{
	    cout<<"2";
	    return 0;
	}
	cout<<m;
}

#include <iostream>
#include <fstream>

#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <iomanip>
#include <map>
#include <memory>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <stack>
#include <string>
#include <unordered_set>
#include <unordered_map>
#include <vector>

#define pb push_back
#define sz(a) ((int)(a).size())
#define all(a) (a).begin(),(a).end()
#define mp make_pair

using namespace std;

typedef long long int64;
typedef vector<int> vi;
typedef pair<int,int> ii;
//https://codeforces.com/problemset/page/7?order=BY_RATING_ASC//
class A
{
public:
void solveOne(istream &in,ostream &out)
{
int mx=1;
string s,t="AEIOUY";
in>>s;
vi a;
for(int i=0;i<(int)s.length();++i)
{
if(t.find(s[i])==string::npos) a.push_back(i);
}
for(int i=0;i<(int)a.size()-1;++i) {
	mx=max(mx,a[i+1]-a[i]);
	}
out<<mx<<"\n";
}
void solve(std::istream &in,std::ostream &out)
{
int tc=1;
//in>>tc;
for(int i=0;i<tc;++i)
{
solveOne(in,out);
}
}

};
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
A a;
std::istream& in(std::cin);
std::ostream& out(std::cout);
a.solve(in,out);
return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
        string s;
        int count=0,temp=0;
        cin>>s;
        for(int i=0;i<s.length();i++)
        {
            if(s[i]=='A' || s[i]=='E' || s[i]=='I' || s[i]=='O' || s[i]=='U')
            {
                for(int j=i+1;j<s.length();j++)
                {

                    if(s[j]=='A' || s[j]=='E' || s[j]=='I' || s[j]=='O' || s[j]=='U'){
                        temp = j-i;
                        count = max(count,temp);
                        break;}
                }
            }
        }
        cout<<count<<endl;
    return 0;
}

#include <iostream>
using namespace std;

int main() {
	// your code goes here
	string str;
	cin>>str;
	int len=str.length();
	if(len==1){
		if(str[0]=='A'||str[0]=='I'||str[0]=='E'||str[0]=='U'||str[0]=='O'||str[0]=='Y')
			cout<<1;
		else
			cout<<0;
		return 0;
	}
	int pos=0;
	for(int i=0;i<len;i++){
		if(str[i]=='A'||str[i]=='I'||str[i]=='E'||str[i]=='U'||str[i]=='O'||str[i]=='Y'){
			pos=i;
			break;
		}
	}
	int high=0;
	for(int i=pos+1;i<len;i++){
		if(str[i]=='A'||str[i]=='I'||str[i]=='E'||str[i]=='U'||str[i]=='O'||str[i]=='Y'){
			high=max(high,i-pos);
			pos=i;
		}
	}
	cout<<high;
	return 0;
}

#include <bits/stdc++.h>
#include <iostream>
#include<string>
#include<cmath>
#include<vector>
typedef long long ll;
#define ss ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);
using namespace std;

int main()
{
ss
string s;
    cin>>s;
    ll j=0,k=0,max=0,p=0;

        for(int i=0;i<s.size();i++)
    {
        if(s[i]=='A'|| s[i]=='E' || s[i]=='I' || s[i]=='O' || s[i]=='U' || s[i]=='Y')
        {
            j=k;
            k=i;
            if(k-j>=max)
            {
                max=k-j;
            }
            p++;
        }
    }
if(p==0)
    cout<<s.size()+1;
    else if(p==1 && s.size()==1)
        cout<<"1";
    else
    cout<<max;
	return 0;
}

#include <iostream>
#include <string>

using namespace std;

bool is_vowel(char ch) {
	if (ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U' || ch == 'Y') {
		return true;
	} else {
		return false;
	}
}

int grasshopper_jump(string str) {
	int vowel_jump_counter = 0;
	int max_jump = 0;

	for (unsigned int c = 0 ; c < str.length() ; c++) {
		vowel_jump_counter++;
		if (is_vowel(str[c])) {
			if (vowel_jump_counter > max_jump) {
				max_jump = vowel_jump_counter;
			}
			vowel_jump_counter = 0;
		}
	}

	if (vowel_jump_counter > max_jump) {
		max_jump = vowel_jump_counter + 1;
	}

	return max_jump;
}

int main (int argv, char **argc) {
	string input = "";
	cin >> input;
	cout << grasshopper_jump(input);

	return 0;
}

#include <iostream>
#include <cstring>
using namespace std;
int l=1,r,mid;
string t="a",s;
bool check(int q)
{
    int fwd=0;
    for(int i=1;i<=t.size();i++)
    {
        fwd++;
        if(fwd>q) return false;
        if(t[i]=='A'||t[i]=='E'||t[i]=='I'||t[i]=='O'||t[i]=='U'||t[i]=='Y') fwd=0;
    }
    return true;
}
int main()
{
    cin>>s;
    r=s.size()+2;
    t+=s;
    t+='a';
    while(l<r)
    {
        mid=(l+r)/2;
        if(check(mid)) r=mid;
        else l=mid+1;
    }
    cout<<l;
    return 0;
}

//...creator:cfmaster...//
#include<bits/stdc++.h>
#define ll long long
using namespace std ;
char a[6] = { 'A', 'E', 'I', 'O', 'U' , 'Y' } ;
bool f ( char x )
{
    bool k = 0 ;
    for ( ll i = 0 ; i < 6 ; i ++ )
    {
        if ( x == a[i] )
        {
            k = 1 ;
            break ;
        }
    }
    return k ;
}
int main ()
{
    string s ;
    cin >> s ;
    ll ans = 0 , x = 0 ;
    for ( ll i = 0 ; i < s.size() ; i ++ )
    {
        if ( f(s[i]) == 1 )
        {
            x = max ( x , ans + 1 ) ;
            ans = 0 ;
        }
        else
        {
            ans ++ ;
        }
    }
    cout << x ;
}

#include <bits/stdc++.h>

using namespace std;

int main()
{

    string s;
    cin>>s;
    int j=-1;
    int sum=0;
    int fsum=0;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='A'||s[i]=='E'||s[i]=='Y'||s[i]=='O'||s[i]=='U'||s[i]=='I')
        {
            fsum=i-j;
            j=i;
        }
        if(sum<fsum)
        {
            sum=fsum;
        }

    }

    if(sum==0)
    {
        cout<<s.size()+1;
        return 0;
    }

    cout<<sum;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;

int main(){
	string s;
	cin>>s;
	int MAX=0;
	int len=s.size();
	int ans=1;
	for(int i=0;i<len;i++){
		if(s[i+1]=='A'||s[i+1]=='E'||s[i+1]=='O'||s[i+1]=='I'||s[i+1]=='U'||i+1==len){
			MAX=max(MAX,ans);
			ans=1;
			continue;
		}
		else{
			ans++;
		}

	}
	cout<<MAX<<endl;
	return 0;
}

#include <cstdio>
int main()
{
    /*
        стоим на нулевой позиции, строка начинается на первой
        какая минимальная длина прыжка нужна, чтобы оказаться на (length+1)-й позиции, при этом перемещаясь только по гласным (AIEOUY)

        пример:
        ABABBBACFEYUKOTT
        A: 0
        B: 1
        A: 2
        B: 1 (max 2)
        B: 2
        B: 3
        A: 4
        C: 1
        F: 2
        E: 3
        Y: 1
        U: 1
        K: 2
        O: 1
        T: 1
        T: 1
        \0: 1

     */
    char c;
    char last;
    int current = 0;
    int max = 0;
    int length = 0;
    while((c = getchar()) != '\n')
    {
        //Видим гласную — скручиваем до 0
        if(c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U' || c == 'Y')
        {
            if(current >= max)
                max = current;
            current = 0;
        }
        current++;
        length++;
        last = c;
    }
    if(length == 1)
    {
        if(last == 'A' || last == 'E' || last == 'I' || last == 'O' || last == 'U' || last == 'Y')
            max = 1;
        else
            max = 2;
    }
    printf("%d", max);
}

#include<map>
#include<string>
#include<iostream>
#include<algorithm>
#pragma warning(disable:4996)
using namespace std;

char s[110];

int check(int i)
{
	if (s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y') return 1;
	return 0;
}

int main()
{
	cin >> s + 1;
	int flag=0, ans=0;
	for (int i = 1; i<=strlen(s+1); i++)
	{
		if (check(i))
		{
			ans = max(ans, i - flag);
			flag = i;
		}
	}
	ans = max(ans, (int)strlen(s+1) - flag);
	cout << ans << endl;
	return 0;
}

#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <deque>
#include <string>
using namespace std;
int cnt;
const int N = 2000005;
int a[N];
bool used[101][101];
int main()
{
	int max1 = INT_MIN, max2;
	string str;
	cin >> str;
	vector <int> v, v1;
	v.push_back(0);
	for(int i = 0; i < str.size(); i++)
	{
		if(str[i] == 'A')
		{
			v.push_back(i);
		}
		if(str[i] == 'E')
		{
			v.push_back(i);
		}
		if(str[i] == 'U')
		{
			v.push_back(i);
		}
		if(str[i] == 'O')
		{
			v.push_back(i);
		}
		if(str[i] == 'I')
		{
			v.push_back(i);
		}
		if(str[i] == 'Y')
		{
			v.push_back(i);
		}
	}
	for(int i = 0; i < v.size(); i++)
	{
		v1.push_back(v[i] - v[i - 1]);
	}
	v1[1] = v[1] + 1;
	for(int i = 1; i < v1.size(); i++)
	{
		if(v1[i] > max1)
		{
			max1 = v1[i];
		}
	}
	int m = v[1];
	if(v.size() == 1)
	{
		cout << str.size() + 1;
	}
	else if(v.size() == 2)
	{
		cout << str.size() - v[1];
	}
	else cout << max1;
	return 0;
}

 #include <algorithm>
#include <iterator>
#include <iostream>
#include <sstream>
#include <bitset>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <list>
#include <map>
#include <set>
#include <time.h>
#include <limits>
#include <math.h>
#include <climits>
#include <numeric>
#include <utility>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <functional>
#include<unordered_map>

using namespace std;
const double pi=acos(-1.0);
//memset ( a , 0 , n * sizeof(ll) ) ;

#define 	boost  		ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); // don't use if small inpts
#define 	endl 		'\n'
#define 	sl(n) 		scanf("%lld",&n)
#define		mp 			make_pair
#define 	pb 			push_back
#define 	ppb 		pop_back
#define 	fi 			first
#define 	se 			second
#define 	ll 			long long
#define 	ull 		unsigned long long
#define 	pii 		pair<int, int>
#define 	f(i,a,b) 	for(ll i = (ll)(a); i < (ll)(b); i++)
#define 	rf(i,a,b) 	for(ll i = (ll)(a); i > (ll)(b); i--)
#define 	ms(a,b) 	memset((a),(b),sizeof(a))
#define 	max(a,b) 	((a>b)?(a):(b))
#define 	min(a,b) 	((a<b)?(a):(b))
#define 	vec(g1) 	int temp;cin>>temp;g1,push_back(temp);
#define 	abs(x) 		((x<0)?(-(x)):(x))
#define 	MAX 		1000005
#define 	inf 		LLONG_MAX
#define 	MIN 		INT_MIN

//typedef
typedef pair<int, int> PII;
typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<PII> VII;
typedef vector<VI> VVI;
typedef map<int,int> MPII;
typedef set<int> SETI;
typedef multiset<int> MSETI;
typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int  uint64;

int mod = 1e9 + 7 ;
ll gcd(ll a , ll b){return b==0?a:gcd(b,a%b);}
ll powmod(ll a,ll b) {ll res=1;if(a>=mod)a%=mod;for(;b;b>>=1){if(b&1)res=res*a;if(res>=mod)res%=mod;a=a*a;if(a>=mod)a%=mod;}return res;}
// ll fac[200005];
// ll inverse(ll n){return powmod(n, mod-2);}
// ll nCr(ll n, ll r){return (fac[n] * inverse(fac[r]) % mod * inverse(fac[n-r]) % mod) % mod;}
////****************************************************************************************************************************************************************************************************************////
int main(){
	   string s;
	   cin>>s;
	   int curr=1;
	   int ans=1;
	   vector<int>g1;
	   for(int i=0;i<s.size();i++){
            if(s[i]=='A' || s[i]=='E' || s[i]=='O' || s[i]=='I' || s[i]=='U' || s[i]=='Y')g1.pb(i);
	   }
	   if(g1.size()>0){
	   for(int i=0;i<g1.size()-1;i++){
	   	 curr=g1[i+1]-g1[i];
	   	 ans=max(ans,curr);
	   } }
	   else{
	   	 ans=s.size();
	   }
	   cout<<ans<<endl;
  		return 0;
}

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

int main() {
	string a;
	string v = "AEIOUY";

	cin >> a;

	vector<int> d;

	for (int i = 0; i < a.size(); i++) {
		if (v.find(a[i]) != string::npos) {
			d.push_back(i);
		};
	};

	int dist = 1;
	if (d.size() == 0) {
		dist = d.size();
	};
	for (int i = 1; i < d.size(); ++i)
	{
		int c = d[i]-d[i-1];
		if (c > dist) {
			dist = c;
		};
	};
	cout << dist;
}

#include <bits/stdc++.h>
#include <ctime>
#include <sstream>
#define weewoo ios::sync_with_stdio(false);cin.tie(0)
#define pii pair<int,int>
#define pll pair<ll,ll>
#define ld long double
#define ll long long
#define se second
#define fi first
#define ctoi(x) x-'0'
#define pi (acos(-1))

using namespace std;

bool isPrime(int num){
    bool flag=true;
    for(int i = 2; i <= sqrt(num);i++) {
       if(num % i == 0) {
          flag = false;
          break;
       }
    }
    return flag;
}

vector<ll>a;
int main()
{
    weewoo;
    string x;cin >> x;
    ll cnt=0;ll i=0;
    for(;i<x.length();i++){
        if(x[i]=='A'||x[i]=='E'||x[i]=='O'||x[i]=='U'||x[i]=='Y'||x[i]=='I'){
            break;
        }
    }
    if(i==x.length())
        return cout << x.length()+1 << endl,0;
    ll ans=1;
    i++;
    for(;i<x.length();i++){
        cnt++;
        if(x[i]=='A'||x[i]=='E'||x[i]=='O'||x[i]=='U'||x[i]=='Y'||x[i]=='I'){
            ans=max(ans,cnt);
            cnt=0;
        }
    }
    ans=max(ans,cnt);
    cout << ans << endl;
    return 0;
}

#include <iostream>

using namespace std;

int main()
{
    string str;
    cin >> str;
    if(str.size() <= 100)
    {
        int min = 0;
        int count = 0;
        for(int i=0; i<= str.size(); i++)
        {

            if(str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' || str[i] == 'U' || str[i] == 'Y'  || i == str.size())
            {
                if(min < count)
                {
                    min = count;
                    count = 0;
                }
                count = 0;
            }
            count ++;
            /* else if(i == str.size())
            {
                if(min < count)
                {
                    min = count;
                    count = 0;
                }
            } */
        }
        cout << min << endl;
    }
    return 0;
}

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
int last=0,mx=-1,i,uk=0;
string s;
int main(){
	cin >> s;
	for(i=0;i<s.size();i++){
		if(s[i]=='A'||s[i]=='E'|| s[i]=='I'||s[i]== 'O'||s[i]== 'U'||s[i]== 'Y')
		{
			mx=max(mx,i-last);
			uk=1;
		last=i;}
	}
	if(uk==0)
		cout << s.size()+1;
	else
		cout << mx;

}

#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include<bits/stdc++.h>
#include<windows.h>
#define pi acos(-1)
#define E 2.71828
#define mp make_pair
#define pb push_back
#define sz(s) s.length()
#define sb substr
#define mi(x) memset((int)(x),0,sizeof((x)))
#define ms(x) memset((string)(x),"",sizeof(x))
#define mc(x) memset((char)(x),'\0',sizeof(x))
#define for0(i,n) for(int i=0;i<(int)(n);i++)
#define maxn 1e9
#define eps 1e-9
#define eightqueen 92
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pii;
typedef vector<int> vi;
int absi(int x)
{
	if(x>=0)
		return x;
	return -x;
}
double pod(double x,double n)
{
	for(int i=0;i<n;i++)
		x*=x;
	return x;
}
bool isvovel(char s)
{
	if(s=='A'||s=='E'||s=='I'||s=='O'||s=='U'||s=='Y')
	return true;
	return false;
}
int main(int argc,char **argv)
{
	string s;
	cin>>s;
	int a=0,b,ans=0,error=0;
	for(int i=0;i<s.length();i++)
	{
		if(isvovel(s[i])==true)
		{
			b=i;
			if(b-a>ans)
			ans=b-a;
			a=b;
		}
		else
		error++;
	}
	if(error==s.length())
	cout<<s.length()+1;
	else
	cout<<ans;
	return 0;
}

//#include<bits/stdc++.h>
#include <iostream>
#include <algorithm>
#include <bitset>
#include <deque>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <map>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
using namespace std;
int main() {

	string s;
	cin>>s;
	int ans=0,cnt=0;
	int f=0;
	for(int i=0;i<s.size();i++)
	{
		cnt++;
		if(s[i]=='A' || s[i]=='E' || s[i]== 'I' ||s[i]== 'O' || s[i]== 'Y' || s[i]=='U')
		{
			f=1;
			ans=max(ans,cnt);
			cnt=0;
		}

	}

	if(!f)
	{
		cout<<0<<endl;
		return 0;
	}

	ans=max(ans,cnt+1);
	cout<<ans<<endl;

	return 0;
}

#include<bits/stdc++.h>
#define ll long long

using namespace std;
int main()
{
    ll a,b,i,j,k=-1,ans=0;
    string s;

    cin >>s;

    for(i=0; i<s.length(); i++)
    {
        if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U')
        {
            a=abs(i-k);

            k=i;
            if(a>ans)ans=a;

//cout << k<<endl;

        }

    }

    cout <<ans<<endl;

}

#include <bits/stdc++.h>

#define llu unsigned long long int
#define SIZE 1000
#define min3(a, b, c) min(a, min(b, c))
#define prime_const 47

using namespace std;

void sieveOfEratosthenes(int n, bool prime[])
{
	int i, p;
	for(i = 2; i * i <= n; i++)
	{
		if(prime[i])
		{
			for(p = i * i; p <= n; p += i)
				prime[p] = false;
		}
	}
}

void pattern(int n)
{
	int i, j;
	int mat[2*n + 1][2*n + 1];
	memset(mat, -1, sizeof(mat));
	for(i = 0; i < n; i++)
	{
		for(j = 0; j < n; j++)
		{
			if(i + j >= n)
			{
				mat[i][j] = i + j - n;
				mat[i][2*n - j] =  i + j - n;
				mat[2*n - i][j] =  i + j - n;
				mat[2*n - i][2*n - j] =  i + j - n;
			}
		}
	}
	for(j = 0; j <= n; j++)
	{
		mat[n][j] = j;
		mat[n][2*n - j] = j;
	}
	for(i = 0; i < n; i++)
	{
		mat[i][n] = i;
		mat[2*n - i][n] = i;
	}
	for(i = 0; i < 2*n + 1; i++)
	{
		for(j = 0; j < 2*n + 1; j++)
		{
			if(mat[i][j] > 0 || (mat[i][j] == 0 && mat[i][j + 1] == 1))
				cout<<mat[i][j]<<" ";
			else if(mat[i][j] == 0)
				cout<<mat[i][j];
			else if((i > j && i > 0 && j <= n) || (i + j < n))
				cout<<"  ";
		}
		cout<<endl;
	}
}

bool isVowel(char c)
{
	switch(c)
	{
		//cout<<c;
		case 'A':
		case 'E':
		case 'I':
		case 'O':
		case 'U':
			return true;
		default:
			return false;
	}
	//return false;
}

int jumpAbility(string s)
{
	int i, j, d, max = INT_MIN, n = s.length();
	vector<int> v;
	if(n == 1)
		return 1;
	for(i = 0; i < n; i++)
	{
		if(isVowel(s[i]))
		{
			//cout<< s[i];
			v.push_back(i);
		}
	}
	for(i = 0; i < v.size() - 1; i++)
	{
		d = v[i + 1] - v[i];
		if(max < d)
			max = d;
	}
	return max;
}

int main()
		{
		int n, m, b, r, w, n2, k, k2, res, NL, c, d, hcf, to;
		pair<int, int> p;
		string word;
		int a[n];
		cin>> word;
		cout<< jumpAbility(word);
		//cout<<log2(m)<<" "<<n;
		return 0;
	    }

#include<bits/stdc++.h>
using namespace std;
main()
{
	string s="AIEOYU";
	int mx=0;
	string x;
	cin>>x;
	int ind=0;
	for(int i=0 ; i<x.length();i++)
	{
		if(s.find(x[i])<s.length())
		{
			mx=max(i-ind,mx);
			ind=i;
			continue;
		}
	}
	cout<<mx;
}

#include <iostream>
using namespace std;

char in[100] = {};
int maxi = 0;
int jump = 0;
char last;

int main(){
  cin>>in;
  for(char i : in){
    jump++;
    if(i!=0){
      if(i=='A'|i=='E'|i=='Y'|i=='U'|i=='O'|i=='I'){
        if(jump>=maxi){
          maxi = jump;
          jump = 0;
        }
        else{jump=0;}
      }
    }
    else{
      if(jump>=maxi){
        maxi = jump;
        jump = 0;
      }
    break;
    }
  }
  cout<<maxi<<endl;
}

// 1534055815028

#include<bits/stdc++.h>
using namespace std;

#define mp make_pair
#define fi first
#define se second
#define pb push_back
#define SPEED ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define ll long long
#define max2(a,b) ((a<b)?b:a)
#define max3(a,b,c) max2(max2(a,b),c)
#define min2(a,b) ((a>b)?b:a)
#define min3(a,b,c) min2(min2(a,b),c)
#define forn(i,val,n) for(int i = val; i < n ; i++)
#define foe(i,val,n)  for(int i = val; i <= n ; i++)
#define rfor(i,val,n) for(int i = val; i >= n ; i--)

using namespace std;

typedef pair<int, int> pii;
typedef vector<int> vi;

void solve(){

    string s;
    cin >> s;
    ll val=0,mx=1;
    bool f=false;
    ll ans=0;

    forn(i,0,s.length())
    {
        if(s[i]=='A' || s[i]=='E'  || s[i]=='I'  || s[i]=='O'  || s[i]=='U'  || s[i]=='Y')
        {
            f=true;
            if(i-val>mx)
                mx=i-val;
            val=i;
        }
    }
    if(s.length()-val+1>mx)
    mx=s.length()-val+1;

    cout<<mx;

}

int main(){
    SPEED;

    ll t=1;
    while(t--) solve();

    return 0;
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string s;

    cin >> s;

    int m=0,max=0;

    int curr,nxt=0,l=0;

    for(int i = 0; i < s.length(); i++)
    {
        if(s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y')
        {
            curr = i;
        }
        l = curr - nxt;
        nxt = curr;
        if(l > m)
            m = l;
    }

    cout << m << endl;

    return 0;
}

#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
int main()
{
   ios_base::sync_with_stdio(false);
   cin.tie(0);
   cout.tie(0);
 string str;
 cin>>str;
 int t=0,ans=0,res=0;
 for(int i=0;i<str.length();i++)
 {
 	if(str[i]=='A' || str[i]=='E' || str[i]=='I' || str[i]=='O' || str[i]=='U'|| str[i]=='Y')
 	{
 		res=i-t;
       // cout<<res<<"   ";
 		ans=max(ans,res);
 		t=i;
	 }
 }

int yu=str.length()-t;

	cout<<max(ans,yu)<<endl;
}

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main() {
#ifdef _DEBUG
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
	string str = "";
	getline(cin, str);
	int n, k = -1, max = -1, i1 = 0, i2 = 0;
	n = str.length();
	if (n == 1){
		if (str[0] == 'A' || str[0] == 'I' || str[0] == 'E' || str[0] == 'Y' || str[0] == 'U' || str[0] == 'O')
			cout << 1;
		else
			cout << 2;
		return 0;
	}
	int i = 0;
	while (i < n){
		if (str[i] == 'A' || str[i] == 'I' || str[i] == 'E' || str[i] == 'Y' || str[i] == 'U' || str[i] == 'O'){
			i1 = i;
			break;
		}
		else i++;
		if (i == n){
			cout << n + 1;
			return 0;
		}
	}
	for (int i = i1 + 1; i < n; i++){
		if (str[i] == 'A' || str[i] == 'I' || str[i] == 'E' || str[i] == 'Y' || str[i] == 'U' || str[i] == 'O'
			|| i == n - 1){
			i2 = i;
			k = i2 - i1;
			if (i2 == n - 1 && str[i2] != 'A' && str[i] != 'I' && str[i] != 'E' && str[i] != 'Y' &&
				str[i] != 'U' && str[i] != 'O')
				k++;
			if (k > max)
				max = k;
			i1 = i2;
		}
	}
	if (max > -1)
		cout << max;
	return 0;
}

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
bool check(char s)
{
	if(s=='A'||s=='E'||s=='I'||s=='O'||s=='U'||s=='Y')
	return true;
	return false;
}
string s,t="XWSQFDCVBNHTJKLPMNFVCKMLPTGFHNBVCDRFGHNMBVXWSQFDCVBNHTJKLPMNFVC";
int i,j,maxn,ans,k,maxm;
int main()
{
	cin>>s;
	for(i=0;i<s.size();i++)
	{
		if(check(s[i])==true)
		k++;
		maxn++;
		maxm++;
		ans=max(ans,maxn);
		if(s.size()!=1&&i==0)
		ans--;
		if(k==2)
		i=maxm-2,maxn=0,k=0;
	}
	if(ans>1)
	cout<<ans-1;
	else if(check(s[0]))
	cout<<ans;
	else
	cout<<ans+1;
	//cout<<' '<<t.size();
	return 0;
}

#include <iostream>
#include <math.h>
#include <algorithm>
using namespace std;
int main(){
    string a;
    cin >> a;
    int max = 1, s = 0, e = 0;
    for(int i = 0 ; i < a.size();i++){
        if(a[i] == 'A' || a[i] == 'E' || a[i] == 'I' || a[i] == 'O' || a[i] == 'U' || a[i] == 'Y'){
            e = i;
            if(e - s > max){
                max = e - s ;
            }
            s = i;
        }
    }
    cout << max;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int isvowel(char a)
{
	if(a=='A'||a=='E'||a=='I'||a=='O'||a=='U'||a=='Y')
	return 1;
	else
	return 0;
}
int main()
{
	string str;
	cin>>str;
    int cnt=1;
    int max=-1;
    for(int i=0;i<str.length();i++)
    {
    	if(!isvowel(str[i]))
    	{
    		cnt++;

		}
	if(isvowel(str[i])&&cnt>max)
		{
		max=cnt;
		cnt=1;
	    }

	}

	cout<<max<<endl;
}

#include <iostream>

using namespace std;

int main()
{
string x;
cin>>x;
int y=x.size(),e=0,r=0,k=0,max1=0,sum=0 ;
for(int i=0;i<y;i++)
{
    k++;
    if(x[i]=='A'||x[i]=='O'||x[i]=='U'||x[i]=='Y'||x[i]=='E'||x[i]=='I'){
    sum=(i+1)-r;
    r=i+1;
    e++;
    }
    if(sum>max1){
        max1=sum;
    }
}
if(e!=0){
    cout<<max1;
}
else
    cout<<k+1;
//cout<<max1;
    return 0;
}