#include <bits/stdc++.h>
using namespace std;
const int N=200005;
int t,n,x[N];
char s[N];
vector<int>l,r;
int main(){
long long ans=0;
scanf("%d%d",&n,&t);
scanf("%s",s+1);
for(int i=1;i<=n;++i) scanf("%d",x+i);
for(int i=1;i<=n;++i){
if(s[i]=='0') l.push_back(x[i]);
else r.push_back(x[i]);
}
sort(l.begin(),l.end());
sort(r.begin(),r.end());
for(auto x:l){
int p1=lower_bound(r.begin(),r.end(),x-2*t)-r.begin();
int p2=lower_bound(r.begin(),r.end(),x)-r.begin()-1;
ans+=p2-p1+1;
}
cout<<ans<<endl;
return 0;
}