#include<bits/stdc++.h>
using namespace std;
long long n,m;
long long mayi1[200005],mayi0[200005];
long long top1,top0;
string s;
int main(){
scanf("%lld%lld",&n,&m);
long long sum=0;
cin>>s;
s=" "+s;
for(int i=1;i<=n;i++){
long long tt;
scanf(" %lld",&tt);
if(s[i]=='0')mayi0[++top0]=tt;
else mayi1[++top1]=tt;
}
sort(mayi1+1,mayi1+top1+1);
sort(mayi0+1,mayi0+top0+1);
mayi0[++top0]=9e18;
for(int i=1;i<=top1;i++){
long long l=1,r=top0;
long long ans=-1;
while(l<r){
long long mid=(l+r+1)/2;
if(mayi0[mid]-mayi1[i]>2*m){
r=mid-1;
}
else{
l=mid;
ans=mid;
}
}
long long ll=0,rr=top0+1;
while(ll<rr){
long long mid=(ll+1+rr)/2;
if(mayi0[mid]>=mayi1[i]){
rr=mid-1;
}
else ll=mid;
}
if(ans!=-1 && ans>ll)sum+=ans-ll;
}
printf("%lld",sum);
return 0;
}