#include<bits/stdc++.h>
#include<queue>
using namespace std;
priority_queue<int>q;
string d ;
struct node {
int x,f;
};
node a[1000100];
int n,vis[100010];
int main() {
int ans=0,sum=0;
cin>>n;
cin>>d;
for(int i=1;i<=n;i++) {
cin>>a[i].f;
a[i].x=i;
if(d[i-1]=='B') {
vis[i]=1;
ans++;
} else{
vis[i]=0;
sum++;
}
}
if(ans==sum) {
cout<<ans<<endl;
} else {
cout<<min(ans,sum)<<endl;
}
int minn,k,kk=0;
for(int i=1;i<=min(ans,sum);i++) {
k=0;
minn=1e9;
for(int j=1;j<n;j++) {
if(vis[j]!=vis[j+1]&&abs(a[j].f-a[j+1].f)<minn) {
minn=abs(a[j].f-a[j+1].f);
k=j;
}
}
cout<<a[k].x<<" "<<a[k+1].x<<endl;
kk++;
a[k].f=0x3f3f3f3f;
a[k+1].f=1e9;
for(int l=k;l<n-1;l++) {
swap(a[l].f,a[l+1].f);
swap(vis[l],vis[l+1]);
}
}
return 0;