#include<iostream>
#include<string>
#include<vector>
#include<unordered_map>
#include<algorithm>
using namespace std;
class solution
{
public:
int cdna(string dnas, unordered_map<char, int> l)
{
int re = 0;
//int temp=-1;
vector<int> ree(100,0);
for (size_t i = 0; i < dnas.size(); i++)
{
if (l.find(dnas[i]) != l.end())
{
//if (i - temp == 1)
//{
// temp = i;
re++;
//}
}
//else if ((l.find(dnas[i]) == l.end())||(i==(dnas.size()-1)))//else具有排他性
if ((l.find(dnas[i]) == l.end()) || (i == (dnas.size() - 1)))
{
ree.push_back(re);
//temp = i;
re = 0;
}
}
return *max_element(ree.begin(), ree.end());
}
};
int main()
{
unordered_map<char, int> l;
l['A'] = 0;
l['T'] = 1;
l['C'] = 2;
l['G'] = 3;
string dnas;
cin >> dnas;
int re;
solution s;
re = s.cdna(dnas,l);
cout<<re;
return 0;
}
#include<string>
#include<vector>
#include<unordered_map>
#include<algorithm>
using namespace std;
class solution
{
public:
int cdna(string dnas, unordered_map<char, int> l)
{
int re = 0;
//int temp=-1;
vector<int> ree(100,0);
for (size_t i = 0; i < dnas.size(); i++)
{
if (l.find(dnas[i]) != l.end())
{
//if (i - temp == 1)
//{
// temp = i;
re++;
//}
}
//else if ((l.find(dnas[i]) == l.end())||(i==(dnas.size()-1)))//else具有排他性
if ((l.find(dnas[i]) == l.end()) || (i == (dnas.size() - 1)))
{
ree.push_back(re);
//temp = i;
re = 0;
}
}
return *max_element(ree.begin(), ree.end());
}
};
int main()
{
unordered_map<char, int> l;
l['A'] = 0;
l['T'] = 1;
l['C'] = 2;
l['G'] = 3;
string dnas;
cin >> dnas;
int re;
solution s;
re = s.cdna(dnas,l);
cout<<re;
return 0;
}