#!/usr/bin/env python3

from os import urandom
from flag import flag

flag = flag[4:-1] # strip SSM{...}

def random(init):
    return (init * 65539) % 2**31

def uni_point():
    return tuple(int.from_bytes(urandom(4)) % 2**31 for _ in range(3))

def sus_point():
    first = int.from_bytes(urandom(4)) % 2**31
    second = random(first)
    third = random(second)
    return (first, second, third)

# solely to make the challenge less cancerous.
# Probably possible without, but not in any nice way.
def easify(p):
    inter = (9*p[0] - 6*p[1] + p[2]) / 118
    return (9*inter, -6*inter, 1*inter)

flag_int = int.from_bytes(flag)
flag_bits = [(flag_int >> i) & 1 for i in range(8 * len(flag))][::-1]

points = []
for b in flag_bits:
    if b == 1:
        points.append(easify(uni_point()))
    else:
        points.append(easify(sus_point()))

def dist(p1, p2):
    return (p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2 + (p1[2] - p2[2]) ** 2

while True:
    i1 = int(input())
    i2 = int(input())

    print(dist(points[i1], points[i2]))
