Задача E. Соседние числа в треугольнике

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

Условие

Правильный треугольник разбили на n единичных треугольников и записали в каждом из них числа от 1 до n по порядку (слева направо, сверху вниз). Два треугольника считаются соседними, если у них есть общая сторона. Существуют ли два соседних треугольника, сумма чисел в которых равна s?

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

Две строки входных данных содержат натуральные числа n и s. Гарантируется, что n — квадрат некоторого натурального числа.

Обратите внимание, что значения переменных в этой задаче могут превышать возможные значения 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).

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

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

Ограничения

1 ≤ n ≤ 1016

1 ≤ s ≤ 1018

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

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

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

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

Смотри рисунок. Требуемая сумма не набирается нигде:

2 + 3 = 5; 3 + 4 = 7;

5 + 6 = 11; 6 + 7 = 13; 7 + 8 = 15; 8 + 9 = 17

1 + 3 = 4; 2 + 6 = 8; 4 + 8 = 12.

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

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

0.110s 0.021s 17