#include <iostream>
using namespace std;
const int N=1e5+1;
char a[N];
int l[N],n,fg=-1,lg=-1,fh=-1,lh=-1;
int sh=0,sg=0;
bool g=false,h=false;
bool le[N];
bool jud1(int i)
{
if(i==fh) {
if(h==false) return true;
else return false;
}
return true;
}
bool jud2(int i)
{
if(i==fg)
{
if(g==false) return true;
else return false;
}
return true;
}
int main() {
cin>>n;
for(int i=1;i<=n;i++) {
cin>>a[i];
if(fg==-1&&a[i]=='G') fg=i;
if(a[i]=='G') lg=i;
if(fh==-1&&a[i]=='H') fh=i;
if(a[i]=='H') lh=i;
}
for(int i=1;i<=n;i++) cin>>l[i];
if(l[fg]>=lg){
sg=1;
g=true;
}
if(l[fh]>=lh) {
sh=1;
h=true;
}
if(g){
for(int i=1;i<=n;i++)
if(a[i]=='H'&&l[i]>=l[fg]&&jud1(i)) sh++;
}
if(h)
{
for(int i=1;i<=n;i++)
if(a[i]=='G'&&l[i]>=l[fh]&&jud2(i)) sg++;
}
cout<<sg*sh;
return 0;
}