#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
int read()
{
int temp=0,ch,flag=0;
if((ch=getchar())=='-') //判断正负
flag=1;
else if(ch>='0'&&ch<='9') //得到完整的数
temp=ch-'0';
while((ch=getchar())>='0'&&ch<='9')
temp=temp*10+ch-'0';
return flag?-temp:temp;
}
const int N=200020;
char str[N];
int num[N];
int n,m;
int solve()
{
int cnt=0;
cin>>str+1>>m;
n=strlen(str+1);
for(int i=1;i<=n;i++)
str[i+n]=str[i];
for(int i=1;i<=2*n;i++)
if(str[i]=='E')
num[++cnt]=i;
if(!cnt)
{
cout<<"0"<<endl;
return 0;
}
int last=1;
ll ans=0;
//对于当前这个
for(int i=1;i<=n;i++)
{
//当前点往前找距离他最近的
if(num[last]<i && last<=cnt)
//就加
last++;
//当大于了,就停止,说明枚举完了所有的e
if(last>cnt)
break;
//当然 这里要和0比较,不然会加负数
ans+=max(0,i+m-num[last]);
}
cout<<ans<<endl;
}
int main()
{
int t=1;
while(t--)
solve();
return 0;
}