#include <bits/stdc++.h>
using namespace std;
const int maxn = 2 * 1e5 + 5;
struct node {
  long long x, y;
};
long long n;
string s;
int vis[maxn];
bool cmp(const node a, const node b) { return a.x > b.x; }
bool cmp1(const node a, const node b) { return a.x < b.x; }
vector<long long> V;
node p[maxn];
long long k;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> p[i].x;
    p[i].y = i;
  }
  sort(p + 1, p + 1 + n, cmp1);
  cin >> s;
  long long cnt = 0;
  long long cnt1 = 0;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == '0') {
      vis[++cnt] = ++cnt1;
      cout << p[cnt1].y << " ";
    } else if (s[i] == '1') {
      cout << p[vis[cnt--]].y << " ";
    }
  }
  return 0;
}
