m = 0

def eq(l):
    if l[0] + l[1] - l[2] - l[5]:
        return False
    if l[2] + l[3] - l[4] - l[7]:
        return False
    if l[4] + l[5] - l[6] - l[9]:
        return False
    if l[6] + l[7] - l[8] - l[1]:
        return False
    return True

def ext(l):
    o = l[1::2]
    e = l[::2]
    while e[0] != min(e):
        o = o[1:] + o[0:1]
        e = e[1:] + e[0:1]
    o = list(map(lambda x: str(x), o))
    e = list(map(lambda x: str(x), e))
    s = o[1:] + o[0:1]
    return ''.join([''.join(x) for x in zip(e, o, s)])

def num(l):
    bn = ext(l)
    if len(bn) != 16:
        return 0
    return int(bn)

def mksq(sq, pl):
    if not pl:
        if eq(sq):
            n = num(sq)
            global m
            if n > m:
                m = n
                print(m)
    for it in pl:
        mksq(sq + [it], list(filter(lambda x: x != it, pl)))

mksq([], list(range(1, 11)))