# 0〜9

l=list(range(10))



# 入力

N,K=list(map(int,input().split()))

l2=list(map(int,input().split()))



# 使用可能な数字を求める

for x in l2:

  l.remove(x)



# 集合型に変換

l=set(l)



# 1<=N<=10000 なので、答えは最大でも100000まで

for x in range(1,100001):

  # 集合型に変換

  y=set(map(int,list(str(x))))



  # Nを上回る数字かつ、使える数字のみを使用している場合

  if N<=x and l.issuperset(y):

    print(x)

    break
import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time



sys.setrecursionlimit(10**7)

inf=10**20

mod=10**9+7



def LI(): return list(map(int,input().split()))

def I(): return int(eval(input()))

def LS(): return input().split()

def S(): return eval(input())



def main():

  n,k=LI()

  

  l=LI()



  a=0

  while True:

    a+=1

    if a>=n:

      f=True

      for x in list(str(a)):

        if int(x) in l:

          f=False

          break

      if f:

        return a



print((main()))

# 0〜9
l = list(range(10))
# 入力
N, K = list(map(int, input().split()))
l2 = list(map(int, input().split()))
# 使用可能な数字を求める
for x in l2:
    l.remove(x)
# 集合型に変換
l = set(l)
# 1<=N<=10000 なので、答えは最大でも100000まで
for x in range(1, 100001):
    # 集合型に変換
    y = set(map(int, list(str(x))))
    # Nを上回る数字かつ、使える数字のみを使用している場合
    if N <= x and l.issuperset(y):
        print(x)
        break

import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, random, time

sys.setrecursionlimit(10**7)
inf = 10**20
mod = 10**9 + 7


def LI():
    return list(map(int, input().split()))


def I():
    return int(eval(input()))


def LS():
    return input().split()


def S():
    return eval(input())


def main():
    n, k = LI()
    l = LI()
    a = 0
    while True:
        a += 1
        if a >= n:
            f = True
            for x in list(str(a)):
                if int(x) in l:
                    f = False
                    break
            if f:
                return a


print((main()))

-# 0〜9 -l = list(range(10)) -# 入力 -N, K = list(map(int, input().split())) -l2 = list(map(int, input().split())) -# 使用可能な数字を求める -for x in l2: -    l.remove(x) -# 集合型に変換 -l = set(l) -# 1<=N<=10000 なので、答えは最大でも100000まで -for x in range(1, 100001): -    # 集合型に変換 -    y = set(map(int, list(str(x)))) -    # Nを上回る数字かつ、使える数字のみを使用している場合 -    if N <= x and l.issuperset(y): -        print(x) -        break +import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, random, time + +sys.setrecursionlimit(10**7) +inf = 10**20 +mod = 10**9 + 7 + + +def LI(): +    return list(map(int, input().split())) + + +def I(): +    return int(eval(input())) + + +def LS(): +    return input().split() + + +def S(): +    return eval(input()) + + +def main(): +    n, k = LI() +    l = LI() +    a = 0 +    while True: +        a += 1 +        if a >= n: +            f = True +            for x in list(str(a)): +                if int(x) in l: +                    f = False +                    break +            if f: +                return a + + +print((main()))