Цифровой дисплей

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

요약
자릿수가 최대 100000인 수와 최대 K번의 이동이 주어지며, 각 이동은 세그먼트 하나를 옮기는 것입니다. 같은 자릿수를 유지하면서 현재 수보다 큰 가장 작은 수를 구합니다.
난이도

어려움10점 중 8점

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

문제

Умный мальчик Вася --- начинающий математик. Сегодня у него день рождения: собралось много гостей, все дарят ему подарки --- все как обычно. Но его лучший друг Вовочка сделал ему необычный подарок: он подарил ему устройство, на котором был цифровой дисплей. Он отображает NN-значное число XX, с помощью NN индикаторов из семи полосок.

Это устройство очень напоминает электронные часы, только оно показывает время не в обычном формате, а в секундах от какого-то очень важного момента. Это было так давно, что Вовочка и не помнит, какое важное событие произошло, когда он впервые включил свое изобретение.

Он рассказал Васе, что по этим часам можно узнать, когда в следующий раз произойдет какое-нибудь важное событие. Для этого надо взять число, которое сейчас на дисплее и переставив в нем не более чем KK палочек получить минимальное число, больше данного. При этом разрешается перемещать палочки из одной цифры в другую. Вовочка уже давно планировал подарить это замечательное изобретение своему лучшему другу, поэтому он расчитал тот момент, когда он будет рассказывать это Васе.

Так как Вася не так хорош в математике как Вовочка, он просит вас написать программу, которая даст ответ на его вопрос.

입력

Первая строка входного файла содержит целое число KK (1≤K≤1001 \le K \le 100). Вторая строка содержит число XX (0≤X<101000000 \le X < 10^{100000}).

출력

В выходной файл выведите одно число: ответ на задачу, либо <<NO SOLUTION>>, если ответа не существует.

예제2

  1. 예제 1

    입력
    2
    4598
    
    예상 출력
    4600
    
  2. 예제 2

    입력
    3
    888
    
    예상 출력
    NO SOLUTION