package main
import (
"bufio"
"bytes"
"os"
)
type FastScanner struct {
r *bufio.Reader
}
func (fs *FastScanner) NextInt64() int64 {
var sign int64 = 1
var val int64
c, err := fs.r.ReadByte()
for (c < '0' || c > '9') && c != '-' {
c, err = fs.r.ReadByte()
if err != nil {
return 0
}
}
if c == '-' {
sign = -1
c, _ = fs.r.ReadByte()
}
for c >= '0' && c <= '9' {
val = val*10 + int64(c-'0')
c, err = fs.r.ReadByte()
if err != nil {
break
}
}
if err == nil {
_ = fs.r.UnreadByte()
}
return val * sign
}
func main() {
fs := &FastScanner{r: bufio.NewReaderSize(os.Stdin, 1<<20)}
t := int(fs.NextInt64())
var out bytes.Buffer
for i := 0; i < t; i++ {
x := fs.NextInt64()
y := fs.NextInt64()
if x == y {
out.WriteString("-1\n")
continue
}
m := x
if y > m {
m = y
}
p := int64(1)
for p < m {
p <<= 1
}
k := p - m
out.WriteString(int64ToString(k))
out.WriteByte('\n')
}
os.Stdout.Write(out.Bytes())
}
func int64ToString(x int64) string {
if x == 0 {
return "0"
}
var a [20]byte
n := len(a)
for x > 0 {
n--
a[n] = byte('0' + x%10)
x /= 10
}
return string(a[n:])
}