import java.util.Scanner;
/**
* @author supermejane
* @date 2025/10/3
* @description 牛客算法学习篇-算法入门 BGN5穷哈哈~
*/
public class Bgn5 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int len = in.nextInt();
in.nextLine();
String s = in.nextLine();
//解法一:直接单个指针遍历就行
int i = 0, result = Integer.MIN_VALUE, subLen = 0;
while (i < len) {
if (illegal(s, i)) {
subLen++;
} else {
//非字串部分,直接结束字串
result = Math.max(subLen, result);
subLen = s.charAt(i) == 'a' || s.charAt(i) == 'h' ? 1 : 0;
}
i++;
}
result = Math.max(result, subLen);
System.out.println(result);
}
//字串部分
public static boolean illegal(String s, int i) {
return (s.charAt(i) == 'a' && (i == 0 || s.charAt(i - 1) == 'h')) || (s.charAt(i) == 'h' && (i == 0 || s.charAt(i - 1) == 'a'));
}
//下面是解法二:双指针
public static int subLength(String s) {
//p1->s, p2->sub字串
int p1 = 0, p2 = 0 , result = 0, subLen = 0;
while (p1 < s.length()) {
if (illegal2(s, p1)) {
p2 = p1 + 1;
subLen = 1;
while (p2 < s.length() && ((s.charAt(p2) == 'a' && s.charAt(p2 - 1) == 'h') || (s.charAt(p2) == 'h' && s.charAt(p2 - 1) == 'a'))) {
subLen++;
p2++;
}
p1 = p2;
result = Math.max(result, subLen);
} else {
p1++;
}
}
return result;
}
//子串开始
public static boolean illegal2(String s, int i) {
if (s.charAt(i) == 'a') {
return i == 0 || s.charAt(i) != 'h';
} else if (s.charAt(i) == 'h') {
return i == 0 || s.charAt(i) != 'a';
}
return false;
}
}