#include <bits/stdc++.h>
using namespace std;
template <class T>
T Max(T a1, T a2) {
  return a1 > a2 ? a1 : a2;
}
template <class T>
T Max(T a1, T a2, T a3) {
  return Max(a1, Max(a2, a3));
}
template <class T>
T Max(T a1, T a2, T a3, T a4) {
  return Max(a1, a2, Max(a3, a4));
}
template <class T>
T Max(T a1, T a2, T a3, T a4, T a5) {
  return Max(a1, a2, Max(a3, a4, a5));
}
template <class T>
T Min(T a1, T a2) {
  return a1 < a2 ? a1 : a2;
}
template <class T>
T Min(T a1, T a2, T a3) {
  return Min(a1, Min(a2, a3));
}
template <class T>
T Min(T a1, T a2, T a3, T a4) {
  return Min(a1, a2, Min(a3, a4));
}
template <class T>
T Min(T a1, T a2, T a3, T a4, T a5) {
  return Min(a1, a2, Min(a3, a4, a5));
}
int main() {
  int n;
  cin >> n;
  string s1;
  string s2;
  cin >> s1;
  s2 = s1;
  int mp[10], temp;
  for (int i = 0; i < 9; i++) {
    cin >> temp;
    mp[i] = temp + '0';
  }
  for (int i = 0; i < n; i++) {
    if (mp[s1[i] - '1'] > s1[i]) {
      for (int j = i; j < n; j++) {
        if (mp[s1[j] - '1'] >= s1[j]) {
          s2[j] = mp[s1[j] - '1'];
        } else {
          break;
        }
      }
      break;
    }
  }
  cout << s2;
  return 0;
}
