#include
#include
#include
using namespace std;
int main() {
int p, n;
cin >> p >> n;
queue q;
vector visited(14, false);
for(int i = 0; i < n; i++) {
int x;
cin >> x;
visited[x] = true;
}
vector vis(100000, false);
q.push(100);
q.push(0);
vis[100] = true;
for(int i = 0; i < 99999; i++) {
bool moze = true;
int x = i;
int cnt = 0;
while(x > 0) {
int digit = x % 10;
if(visited[digit]) {
moze = false;
break;
}
cnt++;
x /= 10;
}
if(moze and i != 100) {
q.push(i);
q.push(cnt);
vis[i] = true;
}
}
while(!q.empty()) {
int number = q.front();
q.pop();
int dist = q.front();
q.pop();
if(number == p) {
cout << min(dist, p - 100) << endl;
return 0;
}
if(number + 1 < 100000 and !vis[number + 1]) {
q.push(number + 1);
q.push(dist + 1);
vis[number + 1] = true;
}
if(number - 1 >= 0 and !vis[number - 1]) {
q.push(number - 1);
q.push(dist + 1);
vis[number - 1] = true;
}
}
return 0;
}