#include<iostream>
#include<algorithm>
using namespace std;
int n,k,m;
int a[301];
struct along{
int l;
int r;
}part[151];
bool cmp(along x,along y)
{
return (x.r-x.l)>(y.r-y.l);
}
void P()
{
int l,r;
l=r=m=0;
for(int i=1;i<=n;i++)
{
l=i;
r=l;
while(a[r+1]==a[l] and r!=n)
{
r++;
}
if(r-l>0)
{
m++;
part[m].l=l;
part[m].r=r;
i=r-l+i-1;
}
}
sort(part+1,part+1+m,cmp);
return;
}
int main()
{
scanf("%d%d",&n,&k);
char h;
for(int i=1;i<=n;i++)
{
cin>>h;
if(h=='N')
a[i]=1;
else
a[i]=0;
}
P();
for(int i=1;i<=k;i++)
{
if(m==0 or m==1)
break;
if(part[1].r-part[1].l==1)
{
if(part[1].r==n)
{
a[part[1].r]++;
a[part[1].r]%=2;
}
else if(part[1].l==1)
{
a[part[1].l]++;
a[part[1].l]%=2;
}
else
{
a[(part[1].r+part[1].l)/2]++;
a[(part[1].r+part[1].l)/2]%=2;
}
}
else
{
a[(part[1].r+part[1].l)/2]++;
a[(part[1].r+part[1].l)/2]%=2;
}
P();
}
if(m==0)
printf("0\n");
else
printf("%d\n",part[1].r-part[1].l+1);
// for(int i=1;i<=m;i++)
// {
// printf("%d-%d\n",part[i].l,part[i].r);
// }
// for(int i=1;i<=n;i++)
// {
// printf("%d",a[i]);
// }
return 0;
}