만드는 중입니다

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

코드 자물쇠

면접 대비

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

요약
밑이 k인 n자리 수 m이 주어질 때, 같은 자릿수 합을 가지면서 m보다 큰 가장 작은 n자리 수를 구합니다.
난이도

보통10점 중 5점

유형
그리디, 수학
정답자
아직 제출이 없습니다

문제

바샤는 코드 자물쇠를 아주 좋아한다. 코드 자물쇠에는 링이 여러 개 달린 드럼이 있다. 각 링에는 여러 위치가 있고, 위치마다 kk진법의 숫자 하나가 대응한다. 그래서 링이 nn개인 자물쇠의 상태는 kk진법 nn자리 수로 나타낼 수 있다. 자물쇠는 정해진 한 상태에서만 열린다.

코드를 잊기 쉬우므로 바샤는 방법을 하나 쓴다. 자물쇠를 잠근 뒤, 열리는 수와 자릿수의 합이 똑같은 수들 가운데 오름차순으로 바로 앞에 있는 수에 맞춰 자물쇠를 돌린다.

그러면 바샤는 현재 수와 자릿수의 합이 같은 다음 수(오름차순)만 찾으면 된다. 그 수가 자물쇠를 연다.

이 자물쇠를 한 달 동안 쓰고 나서, 바샤는 매번 이 문제를 손으로 푸는 일이 지겨워졌다. 그래서 여러분에게 도움을 청했다.

kk진법으로 주어진 수 mm이 있을 때, 같은 진법에서 자릿수의 합이 같은 다음 수(오름차순)를 구하는 프로그램을 작성하라.

입력

첫째 줄에 자연수 kk와 nn이 주어진다 (2≤k≤362 \le k \le 36). 둘째 줄에는 kk진법으로 표현된 수 mm이 주어진다. mm은 nn개의 숫자로 이루어지며, 앞에 0이 없다. 10부터 35까지의 숫자는 대문자 A부터 Z까지로 나타낸다. 수 mm은 100000100000을 넘지 않는다.

출력

답인 kk진법 수를 정확히 nn자리로, 앞에 0이 없게 출력한다. 바샤가 어딘가 잘못 계산해서 조건을 만족하는 수가 존재하지 않으면 <<Impossible>>라는 단어 하나를 출력한다.

예제3

  1. 예제 1

    입력
    10 2
    23
    
    예상 출력
    32
    
  2. 예제 2

    입력
    16 2
    FF
    
    예상 출력
    Impossible
    
  3. 예제 3

    입력
    26 2
    HP
    
    예상 출력
    IO