// 原理其实就是,用flag记住自己上一个字符
// flag初始状态是一个不是a和h的字符
// 如果遇到a和h的话,就直接对当前的最大长度加一,然后标记上一个字符为a或h
// 如果不是的话,就直接标记不是然后让它归零
#include <bits/stdc++.h>
using namespace std;
void solve()
{
int n;cin>>n;string s;cin>>s;
if (n == 1)
{
if(s[0] == 'a'||s[0] == 'h')
{
cout<<1;
return ;
}
}
char flag = 'b';
// 当首次接触到a或者h时会对flag进行赋值
// 因为不相等
// 在之后就会只有这个字符和前一个字符不相等才会计算长度
int max_so_far = 0,max_ending_here = 0;
for (int i = 0;i < n;i++)
{
if (s[i] == 'a')
{
if(flag != s[i])
{
max_ending_here++;
flag = s[i];
}
else
{
max_so_far = max(max_so_far,max_ending_here);
max_ending_here = 1;
flag = s[i];
}
}
else if (s[i] == 'h')
{
if (flag != s[i])
{
max_ending_here ++;
flag= s[i];
}
else
{
max_so_far = max(max_so_far,max_ending_here);
max_ending_here = 1;
flag = s[i];
}
}
else
{
max_so_far = max(max_so_far,max_ending_here);
max_ending_here = 0;
flag = s[i];
}
}
max_so_far = max(max_so_far,max_ending_here);
cout<<max_so_far<<'\n';
}
int main()
{
ios::sync_with_stdio(false);cin.tie(nullptr);solve(); return 0;
}