#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
long long n, k, b, ans, l, r;
char str[MAXN];
long long a[MAXN];
int main() {
  while (scanf("%I64d", &n) != EOF) {
    for (int i = 1; i <= n; ++i) {
      scanf("%I64d", &a[i]);
    }
    scanf("%s", str);
    r = 999999999;
    l = -999999999;
    for (int i = 5; i <= n; ++i) {
      if (str[i - 1] == '1') {
        if (str[i - 2] == '0' && str[i - 3] == '0' && str[i - 4] == '0' &&
            str[i - 5] == '0') {
          long long num =
              max(a[i], max(a[i - 1], max(a[i - 2], max(a[i - 3], a[i - 4]))));
          l = max(l, num + 1);
        } else if (str[i - 2] == '1' && str[i - 3] == '1' &&
                   str[i - 4] == '1' && str[i - 5] == '1') {
          if (a[i] > r && a[i - 1] > r && a[i - 2] > r && a[i - 3] > r &&
              a[i - 4] > r && a[i - 5] > r) {
            long long num = min(
                a[i], min(a[i - 1], min(a[i - 2], min(a[i - 3], a[i - 4]))));
            r = num + 1;
          }
        }
      } else {
        if (str[i - 2] == '0' && str[i - 3] == '0' && str[i - 4] == '0' &&
            str[i - 5] == '0') {
          if (a[i] < l && a[i - 1] < l && a[i - 2] < l && a[i - 3] < l &&
              a[i - 4] < l && a[i - 5] < l) {
            long long num = max(
                a[i], max(a[i - 1], max(a[i - 2], max(a[i - 3], a[i - 4]))));
            l = num - 1;
          }
        } else if (str[i - 2] == '1' && str[i - 3] == '1' &&
                   str[i - 4] == '1' && str[i - 5] == '1') {
          long long num =
              min(a[i], min(a[i - 1], min(a[i - 2], min(a[i - 3], a[i - 4]))));
          r = min(r, num - 1);
        }
      }
    }
    printf("%I64d %I64d\n", l, r);
  }
  return 0;
}
