#include <bits/stdc++.h>
int main() {
  int n, f[10], i, j, temp;
  scanf("%d", &n);
  char *s;
  s = (char *)malloc(n + 2);
  scanf("%s", s);
  for (i = 1; i <= 9; i++) {
    scanf("%d", &f[i]);
  }
  for (i = 0;; i++) {
    if (((int)s[i] - 48) < f[(int)s[i] - 48]) {
      temp = i;
      break;
    } else if (i == (n - 1)) {
      temp = n - 1;
      break;
    }
  }
  for (i = temp; i < n; i++) {
    if (((int)s[i] - 48) > f[(int)s[i] - 48]) {
      break;
    }
    s[i] = (char)(f[(int)s[i] - 48] + 48);
  }
  puts(s);
  free(s);
  return 0;
}
