#include <iostream>
#include <algorithm>
using namespace std;
int digit_decomp(int num, int digits[]) {
int i;
for (i = 0; num; i++) {
digits[i] = num % 10;
num /= 10;
}
return i;
}
int main() {
int N = 0;
int K[3] = { 0 };
int N_digits = 0;
int num_K = 0;
int digits[9] = { 0 };
int ans[9] = { 0 };
cin >> N >> num_K;
for (int i = 0; i < num_K; i++) {
cin >> K[i];
}
sort(K, K + num_K, greater<int>());
N_digits = digit_decomp(N, digits);
bool sw0 = false, sw1 = false;
for (int i = N_digits - 1; i >= 0; i--) {
for (int j = 0; j < num_K; j++) {
if (sw1) {
ans[i] = K[j];
break;
}
if (digits[i] == K[j]) {
if (i > 0 && digits[i - 1] >= K[num_K - 1]) {
ans[i] = K[j];
break;
}
}
if (digits[i] > K[j]) {
ans[i] = K[j];
sw1 = true;
break;
}
if (j == num_K - 1) {
sw0 = true;
}
}
if (sw0) {
sw0 = false;
for (int j = 1; i + j < N_digits; j++) {
if (ans[i + j] != K[num_K - 1]) {
i = i + j;
cout << i << endl;
for (int k = 2; k < num_K; k++) {
cout << ans[i] << endl << K[num_K - k] << endl << K[num_K - k] << "tr\n";
if (ans[i] == K[num_K - k]) {
ans[i] = K[num_K - k + 1];
cout << ans[i] << "\n";
sw1 = true;
break;
}
}
break;
}
}
if (!sw1) {
cout << "gogo\n";
N_digits -= 1;
i = N_digits;
sw1 = true;
}
}
}
for (int i = N_digits - 1; i >= 0; i--) {
cout << ans[i];
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBkaWdpdF9kZWNvbXAoaW50IG51bSwgaW50IGRpZ2l0c1tdKSB7CglpbnQgaTsKCWZvciAoaSA9IDA7IG51bTsgaSsrKSB7CgkJZGlnaXRzW2ldID0gbnVtICUgMTA7CgkJbnVtIC89IDEwOwoJfQoJcmV0dXJuIGk7Cn0KIAppbnQgbWFpbigpIHsKCWludCBOID0gMDsKCWludCBLWzNdID0geyAwIH07CglpbnQgTl9kaWdpdHMgPSAwOwoJaW50IG51bV9LID0gMDsKCWludCBkaWdpdHNbOV0gPSB7IDAgfTsKICAgIGludCBhbnNbOV0gPSB7IDAgfTsKIAoJY2luID4+IE4gPj4gbnVtX0s7CiAKCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX0s7IGkrKykgewoJCWNpbiA+PiBLW2ldOwoJfQogCglzb3J0KEssIEsgKyBudW1fSywgZ3JlYXRlcjxpbnQ+KCkpOwogCglOX2RpZ2l0cyA9IGRpZ2l0X2RlY29tcChOLCBkaWdpdHMpOwogCglib29sIHN3MCA9IGZhbHNlLCBzdzEgPSBmYWxzZTsKCWZvciAoaW50IGkgPSBOX2RpZ2l0cyAtIDE7IGkgPj0gMDsgaS0tKSB7CgkJZm9yIChpbnQgaiA9IDA7IGogPCBudW1fSzsgaisrKSB7CgkJCWlmIChzdzEpIHsKCQkJCWFuc1tpXSA9IEtbal07CgkJCQlicmVhazsKCQkJfQoJCQlpZiAoZGlnaXRzW2ldID09IEtbal0pIHsKCQkJCWlmIChpID4gMCAmJiBkaWdpdHNbaSAtIDFdID49IEtbbnVtX0sgLSAxXSkgewoJCQkJCWFuc1tpXSA9IEtbal07CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQkJaWYgKGRpZ2l0c1tpXSA+IEtbal0pIHsKCQkJCWFuc1tpXSA9IEtbal07CiAgICAgICAgICAgICAgICBzdzEgPSB0cnVlOwoJCQkJYnJlYWs7CgkJCX0KCQkJaWYgKGogPT0gbnVtX0sgLSAxKSB7CgkJCQlzdzAgPSB0cnVlOwoJCQl9CgkJfQoJCWlmIChzdzApIHsKCQkJc3cwID0gZmFsc2U7CgkJCWZvciAoaW50IGogPSAxOyBpICsgaiA8IE5fZGlnaXRzOyBqKyspIHsKCQkJCWlmIChhbnNbaSArIGpdICE9IEtbbnVtX0sgLSAxXSkgewoJCQkJCWkgPSBpICsgajsKCQkJCQljb3V0IDw8IGkgPDwgZW5kbDsKCQkJCQlmb3IgKGludCBrID0gMjsgayA8IG51bV9LOyBrKyspIHsKCQkJCQkJY291dCA8PCBhbnNbaV0gPDwgZW5kbCA8PCBLW251bV9LIC0ga10gPDwgZW5kbCA8PCBLW251bV9LIC0ga10gPDwgInRyXG4iOwoJCQkJCQlpZiAoYW5zW2ldID09IEtbbnVtX0sgLSBrXSkgewoJCQkJCQkJYW5zW2ldID0gS1tudW1fSyAtIGsgKyAxXTsKCQkJCQkJCWNvdXQgPDwgYW5zW2ldIDw8ICJcbiI7CgkJCQkJCQlzdzEgPSB0cnVlOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQkJaWYgKCFzdzEpIHsKCQkJCWNvdXQgPDwgImdvZ29cbiI7CgkJCQlOX2RpZ2l0cyAtPSAxOwoJCQkJaSA9IE5fZGlnaXRzOwoJCQkJc3cxID0gdHJ1ZTsKCQkJfQoJCX0KCX0KIAoJZm9yIChpbnQgaSA9IE5fZGlnaXRzIC0gMTsgaSA+PSAwOyBpLS0pIHsKCQljb3V0IDw8IGFuc1tpXTsKCX0KCXJldHVybiAwOwp9