Задача №114540. Числа

Аня любит, когда числа состоят из одинаковых цифр. Поэтому ей нравятся числа 777 или 5555, а вот число 1234 ей совсем не нравится.

Иногда у Ани бывает хорошее настроение, тогда ей по прежнему нравятся все числа, состоящие из одинаковых цифр, но также нравятся числа, в которых все цифры кроме одной одинаковые, как, например, в числе 77727.

У Ани есть число \(x\). Аня хочет найти минимальное целое число \(y \ge x\), которое ей понравится.

Требуется написать программу, которая по заданному целому числу \(x\) и информации, хорошее ли настроение у Ани, находит минимальное целое число \(y \ge x\), которое нравится Ане.

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

Первая строка ввода содержит целое число \(x\) (\(1 \le x \le 10^{17}\), обратите внимание, что число \(x\) не может быть сохранено в стандартном 32-битном типе данных, необходимо использовать 64-битный тип данных, например « long long » в C++, « int64 » в Паскале).

Вторая строка ввода содержит число \(k\), равное \(0\) или \(1\). Значение \(k = 1\) означает, что у Ани хорошее настроение, а значение \(k = 0\) — что это не так.

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

Следует вывести одно целое число \(y\).

Должны выполняться следующие свойства:

    [noitemsep,leftmargin=2cm]
  • \(y \ge x\);
  • если \(k = 0\), то все цифры в десятичной записи числа \(y\) должны совпадать;
  • если \(k = 1\), то все цифры в десятичной записи числа \(y\), кроме, может быть, одной, должны совпадать.

Система оценки

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

Подзадача Баллы Ограничения Необходимые подзадачи Информация о проверке
1 15 \(1 \le x \le 10^5\), \(k = 0\) полная
2 20 \(1 \le x \le 10^{17}\), \(k = 0\) 1 первая ошибка
3 21 \(1 \le x \le 10^5\), \(k = 0\) или \(k = 1\) 1 полная
4 44 \(1 \le x \le 10^{17}\), \(k = 0\) или \(k = 1\) 1–3 первая ошибка

Примеры
Входные данные
700
0
Выходные данные
777
Входные данные
700
1
Выходные данные
700
Сдать: для сдачи задач необходимо войти в систему