Задача D. Разрезание квадрата

Автор:Антон Карабанов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  
Максимальный балл:100  

Условие

Тимофей разрезал имеющийся у него квадрат на квадратные кусочки. У него получилось n квадратов со стороной 1 и один квадрат с большей стороной. Потом большой квадрат потерялся и Тимофей пытается вспомнить, какого размера он был. Помогите ему!

Формат входных данных

Единственная строка входного файла содержит натуральное число n — количество единичных квадратов.

Формат выходных данных

Выведите через пробел в порядке возрастания все подходящие размеры стороны большого квадрата. Если ни одного подходящего значения нет, выведите число -1.

Ограничения

5 ≤ n ≤ 109

Система оценки и описание подзадач

Баллы за каждый тест начисляются независимо.

Решения, верно работающие при n ≤ 1000, получат не менее 40 баллов.

Пояснение к примерам

В первом примере n = 21. На рисунке приведены два подходящих варианта разрезания. В первом случае из квадрата 5 × 5 вырезан квадрат со стороной 2, во втором — из квадрата 11 × 11 вырезан квадрат со стороной 10. В обоих случаях остается 21 единичный квадрат.

Во втором примере n = 10. Подходящих вариантов разрезания нет.

Примеры тестов

Стандартный вход Стандартный выход
1
21
2 10
2
10
-1

0.162s 0.022s 17