#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
const int mod = 1e9 + 7;
int n, a[10];
char s[maxn], t[maxn];
int main() {
  while (scanf("%d", &n) != EOF) {
    scanf("%s", s);
    memset(t, 0, sizeof(t));
    for (int i = 1; i <= (9); i++) scanf("%d", &a[i]);
    for (int i = 0; i < (n); i++) {
      t[i] = a[s[i] - '0'] + '0';
    }
    int flag = 0;
    for (int i = 0; i < (n); i++) {
      if (s[i] > t[i]) {
        printf("%c", s[i]);
        if (flag > 0) flag = -1;
      } else if (s[i] == t[i]) {
        printf("%c", s[i]);
        if (flag > 0) flag++;
      } else {
        if (flag >= 0) {
          printf("%c", t[i]);
          flag++;
        } else {
          printf("%c", s[i]);
        }
      }
    }
    printf("\n");
  }
  return 0;
}
