package main
import (
"fmt"
"bufio"
"os"
"strings"
"strconv"
)
func main() {
s := bufio.NewScanner(os.Stdin)
for s.Scan() {
line := strings.TrimSpace(s.Text())
asStrings := strings.Split(line, " ")
firstFactor, _ := strconv.ParseUint(asStrings[0], 10, 32)
secondFactor, _ := strconv.ParseUint(asStrings[1], 10, 32)
product := xorMultiply(uint(firstFactor), uint(secondFactor))
fmt.Printf("%d@%d=%d\n", firstFactor, secondFactor, product)
}
}
func xorMultiply(a, b uint)(product uint) {
for ; b != 0; a, b = a << 1, b >> 1 {
product ^= (a * (b & 1))
}
return
}
cGFja2FnZSBtYWluCgppbXBvcnQgKAogICAgImZtdCIKICAgICJidWZpbyIKICAgICJvcyIKICAgICJzdHJpbmdzIgogICAgInN0cmNvbnYiCikKCmZ1bmMgbWFpbigpIHsKICAgIHMgOj0gYnVmaW8uTmV3U2Nhbm5lcihvcy5TdGRpbikKICAgIGZvciBzLlNjYW4oKSB7CiAgICAgICAgbGluZSA6PSBzdHJpbmdzLlRyaW1TcGFjZShzLlRleHQoKSkKICAgICAgICBhc1N0cmluZ3MgOj0gc3RyaW5ncy5TcGxpdChsaW5lLCAiICIpCiAgICAgICAgZmlyc3RGYWN0b3IsIF8gOj0gc3RyY29udi5QYXJzZVVpbnQoYXNTdHJpbmdzWzBdLCAxMCwgMzIpCiAgICAgICAgc2Vjb25kRmFjdG9yLCBfIDo9IHN0cmNvbnYuUGFyc2VVaW50KGFzU3RyaW5nc1sxXSwgMTAsIDMyKQogICAgICAgIHByb2R1Y3QgOj0geG9yTXVsdGlwbHkodWludChmaXJzdEZhY3RvciksIHVpbnQoc2Vjb25kRmFjdG9yKSkKICAgICAgICBmbXQuUHJpbnRmKCIlZEAlZD0lZFxuIiwgZmlyc3RGYWN0b3IsIHNlY29uZEZhY3RvciwgcHJvZHVjdCkKICAgIH0KfQoKZnVuYyB4b3JNdWx0aXBseShhLCBiIHVpbnQpKHByb2R1Y3QgdWludCkgewogICAgZm9yIDsgYiAhPSAwOyBhLCBiID0gYSA8PCAxLCBiID4+IDEgewogICAgICAgIHByb2R1Y3QgXj0gKGEgKiAoYiAmIDEpKQogICAgfQogICAgcmV0dXJuCn0=