#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;
}

// 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;
}

#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<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;

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<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;
}

//#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 <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;
}

#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;
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;
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<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;
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>
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;
    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;
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>
#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 <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 <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 <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<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;
}

#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;
}

#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 <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;
}

#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<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>
#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>
#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;

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;
}

	/*
	   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;
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>
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>

// 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 <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;
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;
}

//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;
}

// 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<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;
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;
}

#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;
#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;
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; 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 <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<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;

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<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()
{
    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;
}

#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 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 <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;
}

#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 <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;
}

///             [[[ 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;
}

#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;
}

/******************************************
*    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;
}

#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;
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<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 <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>
#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;
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;
}

#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 <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;
#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 <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 <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 <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<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<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;
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;
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<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 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 <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<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 <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>
#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<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 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 <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;
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<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;
}

		// 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;

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

// 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;
}