수빈이는 현재 100번 채널을 보고 있고, 채널 N번으로 이동하고 싶다.
+는 (채널+1)으로 이동하고, -를 누르면 (채널-1)로 이동한다.
또한 숫자를 눌러 특장 채널로 이동할 수도 있다.
이 때 숫자 자릿수만큼 버튼을 클릭하는 것으로 간주한다
(ex : 123을 클릭했다면 총 3번 버튼을 누르는 것으로 간주)
그런데 이 리모컨은 고장난 버튼이 있어서, 고장난 버튼을 클릭할 수는 없다.
이 경우 채널 N으로 이동할 때 최소 몇 번 버튼을 클릭해야하는지 구하는 문제이다.
여기에서 가장 큰 문제는 "첫 번째에 몇 번 버튼을 누르는 것이 가장 적게 +, - 버튼을 누르면서 목적지로 갈 수 있는가"이다
그런데 이 첫 번째 버튼에 대한 명확한 알고리즘을 찾지는 못했다.
그래서 어쩔 수 없이 0 ~ 1000001 버튼을 클릭해보는 모든 상황을 확인해보았다.
N = int(input())
error = int(input())
error_list = []
if error != 0:
error_list = list(map(int, input().split()))
ans = abs(100 - N)
for num in range(1000001):
num = str(num)
for j in range(len(num)):
if int(num[j]) in error_list:
# 고장난 번호를 클릭한 경우이므로 고려하지 않음
break
elif j==len(num) - 1:
# 고장나지 않은 번호로 num을 선택한 경우
# (num ~ N까지 가는 거리 + num을 선택하는 데 필요한 버튼 개수)를 구한다
ans = min(ans, abs(int(num)-N) + len(num))
print(ans)