A. Link/Cut Tree
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Программист Ростислав серьёзно увлёкся структурой данных Link/Cut Tree, которая основана на Splay-деревьях. В частности, сейчас он изучает процедуру expose.

К сожалению, понять определение этой процедуры Ростислав не в состоянии, и поэтому он решил обратиться за помощью к программисту Серёже. Тот согласился помочь, только если Ростислав решит простую задачу (а если не решит, то зачем ему Splay-деревья?)

По заданным l, r и k необходимо вывести все степени числа k в промежутке от l до r, включая границы. Однако Ростиславу не хочется решать эту задачу самостоятельно, ведь он увлекся сетевой игрой в Agar с Глебом. Помогите ему!

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

В первой строке входных данных через пробел записаны три целых числа l, r и k (1 ≤ l ≤ r ≤ 1018, 2 ≤ k ≤ 109).

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

Выведите все степени числа k, лежащие в промежутке от l до r, в порядке возрастания. Если таких чисел не существует, выведите "-1" (без кавычек).

Примеры
Входные данные
1 10 2
Выходные данные
1 2 4 8 
Входные данные
2 4 5
Выходные данные
-1
Примечание

Пояснение к первому примеру: 1 = 20, 2 = 21, 4 = 22, 8 = 23. 16 = 24, что больше чем 10, следовательно не подходит.