Рассмотрим треугольник бесконечного размера. Разделим его на меньшие треугольники и пронумеруем, как показано на рисунке. Два маленьких треугольника являются смежными, если они имеют общую границу (а не только общую точку). Так как каждый треугольник имеет три стороны, то он находится рядом с не более чем тремя другими треугольниками. Треугольники, которые примыкают к двум или только одному треугольнику, находятся на границе бесконечного треугольника.
По номеру треугольника легко визуально определить число смежных с ним треугольников. Например, к треугольнику номер 13 примыкают треугольники с номерами 7, 12 и 14. Если выбрать граничный треугольник, например с номером 25, то легко определить его соседей - это 24 и 35. Напишите программу, которая выполнит описанную функцию.
Первая строка содержит количество тестов n (1 ≤ n ≤ 100), каждый из которых расположен на одной строке. Каждый тест состоит из одного целого числа - номера треугольника, принимающего значение от 1 до 1000000 включительно.
Вывести n строк (по одной строке для каждого теста). Ответом на каждый тест являются номера треугольников, смежных с заданным. Список чисел следует выводить в возрастающем порядке. Между каждой парой номеров треугольников следует выводить один пробел.
Формат выходных данных приведен в примере.