#include <cstdlib>
#include <cstdio>

const int MaxN = 1000100;

int n, m, sol;
char s[MaxN];
int p[MaxN], d[MaxN], rightmost[MaxN];

int main()
{
	freopen("muzej.in", "r", stdin);
	freopen("muzej.out", "w", stdout);

	scanf("%d%d", &n, &m);
	scanf("%s", s);

	p[0] = 0;
	for (int i = 1; i <= n; i++)
		if (s[i - 1] == 'a') 
			p[i] = p[i - 1] + 1;
		else
			p[i] = p[i - 1] - 1;

	for (int i = 0; i <= n; i++) 
		rightmost[i] = 0;

	d[0] = 0;
	for (int i = 1; i <= n; i++)
	{
		if (p[i] >= 0)
		{
			d[i] = d[ rightmost[ p[i] ] ] + 1;
			if (p[i - 1] < p[i] && d[i - 1] + 1 > d[i])
				d[i] = d[i - 1] + 1;

			rightmost[ p[i] ] = i;
		}
		else
		{
			d[i] = -1;
		}
	}

	sol = 0;
	for (int i = 0; i < m; i++)
		if (d[i] > sol && p[n] - p[i] >= 0) sol = d[i];

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