

let read_ints =
  let rec aux acc = function
    | 0 -> acc
    | n -> aux ((Scanf.scanf "%d " (fun x -> x)) :: acc) (n-1) in
  aux []



let decimal =
  let rec aux acc = function
    | 0 -> acc
    | n -> aux ((n mod 10)::acc) (n/10) in
  aux []


let pow k =
  let rec aux accu k = function
  | 0 -> accu
  | n when n mod 2 = 0 -> aux accu (k*k) (n/2)
  | n -> aux (accu*k) (k*k) (n/2) in
  aux 1 k




let () =
  let n, k  = Scanf.scanf "%d %d\n" (fun x y -> (x, y)) in
  let l = List.sort compare (read_ints k) in
  let dl = decimal n in
  let rec solver = function
    | [] -> Some 0
    | hd :: tl -> if List.mem hd l then (if hd = 9 then None else (solver ((hd+1):: tl))) else
                  match (solver tl) with
                    | None -> (if hd = 9 then None else (solver ((hd+1):: tl)))
                    | Some x -> Some (hd * (pow 10 (List.length tl)) + x) in
  let rec solve = function
    | [] -> 0
    | hd :: tl -> if List.mem hd l then (if hd = 9 then (solve (1::0::tl)) else (solve ((hd+1):: tl))) else
                  match (solver tl) with
                    | None -> (if hd = 9 then (solve (1::0::tl)) else (solve ((hd+1):: tl)))
                    | Some x -> hd * (pow 10 (List.length tl)) + x in
  print_int (solve dl)
