def process(a): # total 8*5 = 40 char
if a[4]!='#' or a[9]!='#' or a[14]!='#' or a[19]!='#' or a[24]!='#' or a[29]!='#' or a[34]!='#':
print 'Format error'
exit(0)
a = ['']*8
a[0] = serial[0:4]
a[1] = serial[5:9]
a[2] = serial[10:14]
a[3] = serial[15:19]
a[4] = serial[20:24]
a[5] = serial[25:29]
a[6] = serial[30:34]
a[7] = serial[35:39]
for i in a:
for j in i:
if j not in '0123456789ABCDEF':
print 'Format error'
exit(0)
target = [0]*5
target[0] = ord(a[0][0])*ord(a[1][0])<<16
target[0] += ord(a[0][1])^ord(a[2][1])
target[0] += ord(a[0][2])%(ord(a[3][2])+1)+1
target[0] += ord(a[0][3])/(ord(a[4][3])+1)
target[1] = (ord(a[1][0])^ord(a[5][0]))<<16
target[1] += ord(a[1][1])%(ord(a[6][1])+3)
target[1] += ord(a[1][2])/(ord(a[7][2])+1)+5
target[1] += ord(a[1][3])+ord(a[0][3])
target[2] = (ord(a[2][0])/(ord(a[1][0])+3)) << 16
target[2] ^= ord(a[2][1])%ord(a[3][1])
target[2] += ord(a[2][2])+12+ord(a[5][2])
target[2] += ord(a[2][3])+ord(a[7][3])
target[3] = ord(a[2][3])^ord(a[0][1])
target[3] *= ord(a[1][3])+ord(a[3][1])
target[3] &= ord(a[4][2])&ord(a[5][2])
target[3] *= ord(a[7][3])
target[3] += target[1]
target[3] *= ord(a[6][0])
target[3] *= target[0]
tmp = target[3]
tmp -= target[1]
tmp %= 2*target[0]
target[3] -= tmp
target[4] = (ord(a[3][0])^ord(a[4][0])) << 16
target[4] *= ord(a[3][1])%(ord(a[4][1])+2)
target[4] += ord(a[3][2])%(ord(a[4][2])+5) + 7
target[4] += ord(a[3][3])*ord(a[4][3])
return target