Диму попросили написать программу, которая перебирает все неотрицательные числа, состоящие из не более, чем $$$M$$$ цифр. Когда ему давали задание, то ни слова не сказали про систему счисления, в которой должны быть записаны числа. Поэтому хитрый Дима выбрал двоичную систему счисления, чтобы программа работала как можно быстрее (подходящих чисел в ней всего лишь $$$2^M$$$). Как только довольный Дима доложил о выполнении задания, ему дали следующее: написать такую же программу, но чтобы она работала параллельно на кластере из $$$D$$$ компьютеров, причем каждое число должно быть получено ровно одним компьютером ровно один раз. Так как Дима в глубине души за равенство всех, всего и вся, то он решил разделить числа между компьютерами так, чтобы все компьютеры перебрали одинаковое количество чисел. Выяснилось, что далеко не для любой системы счисления можно распределить все нужные ему числа поровну между $$$D$$$ компьютерами. Тогда он решил найти минимальное основание системы счисления, для которой это можно сделать. Помогите Диме!
Два целых числа: $$$M$$$ — максимальное количество цифр в числе (от 1 до $$$10^9$$$) и $$$D$$$ — количество компьютеров (от 2 до $$$10^9$$$).
Целое число $$$K$$$ — минимальное основание системы счисления ($$$K \gt 1$$$), в которой все числа из не более, чем $$$M$$$ цифр, можно разделить поровну между $$$D$$$ компьютерами.
3 1000
10
2 12
6
4 48
6