Долгое путешествие

시간 제한2초메모리 제한1024 MB

요약
k와 매우 큰 정수 x가 주어질 때, 서로 다른 숫자를 k개 이하로 쓰면서 x 이상인 가장 작은 수 y를 구한다.
난이도

보통10점 중 6점

유형
그리디, 문자열, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

Мэтр очень любит путешествовать и смотреть на мир вокруг. Но еще больше он любит смотреть на изменение своего счетчика пробега. Недавно он заметил одно интересное свойство у последних чисел, которые он видел на счетчике. Оказалось, что в каждом из них количество различных цифр не превосходило kk. Мэтр решил, что это все неспроста, и назвал такие числа <<замечательными>>. После этого он посмотрел на текущее показание счетчика и задался вопросом: а когда в следующий раз на нем будет показано замечательное число? Понимая, что эта задача ему не под силу, Мэтр обратился к вам за помощью.

입력

В первой строке входного файла дано число kk (1≤k≤101 \le k \le 10) --- ограничение на количество различных цифр в замечательных числах.

Во второй строке дано число xx (1≤x≤101061 \le x \le 10^{10^6}) --- последнее показание счетчика, которое увидел Мэтр. Гарантируется, что в числе xx, нет ведущих нулей.

출력

В единственной строке выходного файла выведите единственное число yy (y≥xy \ge x) --- показание счетчика, такое, что в числе yy не более kk различных цифр и (y−xy-x) --- минимально. Ответ не должен содержать ведущих нулей.

예제3

  1. 예제 1

    입력
    1
    4321
    
    예상 출력
    4444
    
  2. 예제 2

    입력
    2
    1234
    
    예상 출력
    1311
    
  3. 예제 3

    입력
    3
    123
    
    예상 출력
    123