Олимпиадный тренинг

Задача . C. Переставь цифры


Даны два натуральных числа a и b. Вам необходимо переставить цифры числа a таким образом, чтобы получилось наибольшее возможное число, не превосходящее b. Никакое из входных или выходных чисел не может начинаться с нуля.

Допустимо оставить число a без изменений.

Входные данные

В первой строке входных данных записано натуральное число a (1 ≤ a ≤ 1018). Во второй строке записано натуральное число b (1 ≤ b ≤ 1018). Числа не содержат лидирующих нулей. Гарантируется, что ответ существует.

Выходные данные

Выведите наибольшее число, не превосходящее b, полученное перестановкой цифр числа a. Ответ не может начинаться с нуля. Гарантируется, что такое число существует.

Число в выводе должно иметь в точности ту же длину, что и число a. Оно должно являться перестановкой цифр числа a.


Примеры
Входные данныеВыходные данные
1 123
222
213
2 3921
10000
9321
3 4940
5000
4940

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя