Напомена: ово је незванична копија задатака. Као таква, не гарантује се да ће овај сајт бити одржаван, и немојте се изненадити ако са њега задаци одједном нестану.

Legutóbbi látogatásotok folyamán egy luxori templomban felfedeztetek egy érdekes ősi rejtvényt. Az ókori Egyiptom bölcsei nagyon kedveltek szorozni és számolni a természetes számok alkotta számpárok XOR értékét. Találtatok egy táblát, amelyen \(T\) számú nemnegatív \(A_i, B_i\) egész számok alkotta számpár állt. Érdekes, hogy minden számpár esetében az \(A_i\) szám páratlan. Feladatotok az, hogy minden adott számpárra találjatok két ( \(X_i, Y_i\) ) egész számot úgy, hogy érvényes legyen: \(A_i = X_iY_i\) és \(B_i = X_i \text{ xor } Y_i\). Megtörténhet, hogy ilyen számpár nem létezik. Ebben az esteben írjátok ki, hogy \(-1\).

Bemenet

A szabványos bemenet első sorában a \(T\) természetes szám áll. A következő \(T\) sorban egyenként két nemnegatív egész szám \(A_i\) és \(B_i\) áll szóközzel elválasztva.

Kimenet

\(T\) sorban, mindegyik bemenetre, kiíratni a \(X_i, Y_i\) számpárt szóközzel elválasztva. Ha nincs ilyen számpár, kiíratni \(-1\)-et. Ha több megoldás is van, kiíratni bármelyiket.

1. példa

Bemenet

4
21 4
2795079079011879151 119681854
9 0
9 2

Kimenet

3 7
1679133257 1664596343
3 3
-1

Korlátozások

A tesztpéldák 3 független csoportba oszthatók:

Megjegyzés

Az XOR operátor, vagyis a kizáró vagy szimbóluma a C++ programnyelvben a ^. Az \(x\ \text{xor} \ y\) művelet eredményét a nemnegatív \(x,y\) egész számokra a következő módon képezzük: először is a számokat leírjuk bináris alakban. Ha valamelyik szám rövidebb a másiknál, ahhoz annyi vezető nullát írunk, hogy a számok egyenlő hosszúságúak legyenek. Így két bináris számsort kapunk: \(a_1, \ldots, a_k\) és \(b_1, \ldots b_k\). Ezután minden \(i \in \{1, \ldots, k \}\) értékre kiszámítjuk a \(c_i\) értéket a következő szabályok szerint:

A \(c_1, \ldots, c_k\) bináris számsor (amely tartalmazhat vezető nullákat) az eredmény, vagyis az \(x \ \text{xor} \ y\) szám bináris alakja.