만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

긴 여행

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

요약
k와 자릿수가 최대 10^6인 x가 주어질 때, x 이상이면서 서로 다른 숫자가 k개 이하인 가장 작은 y를 구합니다.
난이도

보통10점 중 6점

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

문제

메트르는 여행을 아주 좋아하고 주변 세상을 구경하는 것을 즐깁니다. 그중에서도 주행거리계 숫자가 바뀌는 것을 보는 것을 가장 좋아합니다. 최근 그는 주행거리계에서 마지막으로 본 숫자들에 흥미로운 성질이 있다는 것을 발견했습니다. 각 숫자에 등장하는 서로 다른 숫자의 개수가 모두 kk 이하였습니다. 메트르는 이것이 우연이 아니라고 보고, 이런 수를 '훌륭한' 수라고 부르기로 했습니다. 그 뒤 현재 주행거리계 값을 보며, 다음으로 훌륭한 수가 표시되는 때가 언제인지 궁금해졌습니다. 자신의 힘으로는 풀 수 없다고 판단한 메트르는 여러분에게 도움을 청합니다.

입력

첫째 줄에 정수 kk (1≤k≤101 \le k \le 10)가 주어진다. 훌륭한 수에 허용되는 서로 다른 숫자의 최대 개수이다.\n둘째 줄에 정수 xx (1≤x≤101061 \le x \le 10^{10^6})가 주어진다. 메트르가 마지막으로 본 주행거리계 값이다. xx에는 선행 0이 없다.

출력

서로 다른 숫자가 최대 kk개이고 y−xy-x가 최소인 주행거리계 값 yy (y≥xy \ge x)를 한 줄에 출력한다. 답에는 선행 0이 없어야 한다.

예제3

  1. 예제 1

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

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

    입력
    3
    123
    
    예상 출력
    123