def main(): import sys input = sys.stdin.read().split() N = int(input[0]) K = input[1] counts = list(map(int, input[2:11])) if len(K) != N: if len(K) < N: res = [] for d in range(1, 10): res.extend([str(d)] * counts[d-1]) print(''.join(res)) else: print(-1) return max_num = [] for d in range(9, 0, -1): max_num.extend([str(d)] * counts[d-1]) max_num_str = ''.join(max_num) if max_num_str <= K: print(-1) return current_counts = counts.copy() prefix = [] best_candidate = None for i in range(N): current_digit = int(K[i]) for d in range(current_digit + 1, 10): if current_counts[d-1] > 0: temp_counts = current_counts.copy() temp_counts[d-1] -= 1 suffix = [] for digit in range(1, 10): suffix.extend([str(digit)] * temp_counts[digit-1]) candidate = ''.join(prefix) + str(d) + ''.join(suffix) if (best_candidate is None) or (candidate < best_candidate): best_candidate = candidate if current_counts[current_digit-1] == 0: break current_counts[current_digit-1] -= 1 prefix.append(str(current_digit)) print(best_candidate if best_candidate is not None else -1) if __name__ == "__main__": main()