#include
using namespace std;
typedef long long ll;
struct node{
int val;int idx;
}w[200010];
bool cmp(node x, node y){
return x.val < y.val;
}
char a[400010];
stack s;
int main(){
int n;
scanf("%d", &n);
for(int i = 1;i <= n; i++) scanf("%d", &w[i].val),w[i].idx = i;
sort(w+1, w+1+n, cmp);
scanf("%s", a+1);
node l;
int j = 1;
for(int i = 1;i <= 2*n; i++){
if(a[i] == '0'){
s.push(w[j++]);
printf("%d ",w[j-1].idx);
}else{
l = s.top();
printf("%d ",l.idx);
s.pop();
}
}
return 0;
}