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

Задача . Степенные числа


Задача

Темы:

Если вас интересует математика, то эта задача для вас.

Будем называть целое число n k-степенным, если его можно разложить в сумму различных степеней числа k, то есть если n представимо в виде n=ka1+ka2++kad, где все ai целые и aiaj для всех ij.

Ответьте на множество запросов: какое минимальное целое число, большее либо равное ni, является ki-степенным?

Формат входных данных
Первая строка ввода содержит целое число q — количество запросов, на которые вам предстоит ответить (1q105).

Каждая из следующих q строк содержит два целых числа ni и ki, описывающие i-й запрос (1ni109; 2ki109).

Формат выходных данных
Выведите q строк, в i-й из которых выведите минимальное ki-хорошее число, большее либо равное ni.


Примеры
Входные данныеВыходные данные
1 7
1 2
2 3
6 5
13 10
14 3
3620 12
10000 3
1
3
6
100
27
20736
19683

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

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