Повторювані десяткові#3767

Повторювані десяткові

2 секунди
64 мегабайти
Легка

Десяткове представлення цілого числа може бути перетворене в інше ціле число шляхом перестановки його цифр. Використовуючи цей принцип, ми можемо побудувати послідовність чисел.

Вам дано невід'ємне ціле число a_0 та кількість цифр . Застосовуючи наведене нижче правило, отримаємо a_{i+1} з a_i.

  1. Представимо ціле число a_i у десятковому вигляді з цифрами. За необхідності додамо провідні нулі. Наприклад, десяткове представлення числа з шістьма цифрами буде .

  2. Переставляючи цифри, знайдемо максимальне і мінімальне число. Для наведеного прикладу найбільшим буде , а найменшим 000122 = 122.

  3. Нове число a_{i+1} отримується шляхом віднімання найменшого числа з найбільшого. Для нашого прикладу це буде , отримане відніманням з .

Повторюючи ці обчислення, отримаємо послідовність цілих чисел a_0, a_1, a_2, ... .

Наприклад, починаючи з числа і при кількості цифр , отримаємо таку послідовність a_0, a_1, a_2, ... :

a_0 = 083268, a_1 = 886320 - 023688 = 862632, a_2 = 866322 - 223668 = 642654, a_3 = 665442 - 244566 = 420876, a_4 = 876420 - 024678 = 851742, a_5 = 875421 - 124578 = 750843, a_6 = 875430 - 034578 = 840852, a_7 = 885420 - 024588 = 860832, a_8 = 886320 - 023688 = 862632 \ldots

Оскільки кількість цифр фіксована, то незабаром деяке число повториться в послідовності a_0, a_1, a_2, ... . Тобто завжди знайдеться така пара і , для якої a_i = a_j (i > j). Для наведеного прикладу пара (i = 8, j = 1) задовольняє умові, оскільки a_8 = a_1 = 862632.

За заданим цілим числом a_0 і кількістю цифр потрібно знайти найменше , яке задовольняє умові a_i = a_j (i > j).

Вхідні дані

Вхідні дані складаються з кількох тестів. Кожен тест складається з рядка, що містить два цілі числа a_0 і , розділених пробілом. a_0 і представляють початкове число послідовності і кількість цифр відповідно. Відомо, що 1 \le L \le 6 і 0 \le a_0 < 10^L.

Останній рядок містить два нулі і не обробляється.

Вихідні дані

Для кожного тесту потрібно знайти найменше , що задовольняє умові a_i = a_j (i > j) і вивести рядок, що містить три цілі числа: , a_i і i - j. Виведені числа слід розділяти пробілом. Провідні нулі не виводити.

Відомо, що шукане значення не перевищує .

Приклади

Приклад 1

Loading
Loading