#include<iostream>
#include<queue>
using namespace std;
priority_queue<pair<int,pair<int,int> >,vector<pair<int,pair<int,int> > >,greater<pair<int,pair<int,int> > > > que;
bool out[4114514];
int st[4114514];
string s;
int n,k;
pair<int,int> ans[4114514];
signed main(){
cin>>n>>s;
s=" "+s;
for(int i=1;i<=n;i++){
cin>>st[i];
}
for(int i=1;i<=n-1;i++){
if(s[i]!=s[i+1]){
que.push(make_pair(abs(st[i]-st[i+1]),make_pair(i,i+1)));
}
}
while(!que.empty()){
int l,r;
if(!out[que.top().second.first] && !out[que.top().second.second]){
l=que.top().second.first;
r=que.top().second.second;
k++;
ans[k].first=l;
ans[k].second=r;
out[l]=true;
out[r]=true;
que.pop();
}else{
que.pop();
continue;
}
if(l-1>=1 && r+1<=n && s[l-1]!=s[r+1]){
que.push(make_pair(abs(st[l-1]-st[r+1]),make_pair(l-1,r+1)));
}
}
cout<<k<<endl;
for(int i=1;i<=k;i++){
cout<<ans[i].first<<' '<<ans[i].second<<endl;
}
return 0;
}