eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Плюс и XOR

Плюс и XOR

Лимит времени 1 секунда
Лимит использования памяти 64 MiB

Побитовое исключающее ИЛИ (или побитовое сложение по модулю два) – это бинарная операция, действие которой эквивалентно применению логического исключающего ИЛИ к каждой паре битов, которые стоят на одинаковых позициях в двоичной записи операндов. Иными словами, если соответствующие биты операндов различны, то соответствующий двоичный разряд результата равен 1; если же биты совпадают, то двоичный разряд результата равен 0.

Например, если X = 101 = 01100101_2,

Y = 41 = 00101001_2,

то X xor Y = 76 = 01001100_2.

В языке программирования Pascal побитовое исключающее или обозначается "xor", а в С/С++ – символом "^".

Напишите программу, которая по двум целым неотрицательным числам A и B найдет такие неотрицательные целые числа X и Y, для которых выполняются условия:

  1. A = X + Y

  2. B = X xor Y, где xor – побитовое исключающее или.

  3. X – наименьшее среди чисел, для которых выполняются условия 1 и 2.

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

Первые две строки содержат соответственно целые числа A и B (0 A, B 2^{64 }- 1).

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

Вывести в одной строке два целых неотрицательных числа X и Y, либо одно число -1, если таких пар не существует.

Пример

Входные данные #1
142
76
Выходные данные #1
33 109
Входные данные #10
1367480970723947
584615739735395
Выходные данные #10
391432615494276 976048355229671
Автор Даниил Нейтер
Источник 2011 XXIV Всеукраинская олимпиада по информатике, Черкассы, Март 26 - 31, тур 1