import socket  

def buscar(matriz, elemento):
pos = []
for i in range(6):
for j in range(6):
if elemento == matriz[i][j]:
pos.append((i, j))
return pos

def buscar_en_pos(posiciones, matriz, elemento):
x = []
for i in posiciones:
if elemento == matriz[i[0]][i[1]]:
x.append(i)
return x

def procesar(recibido):
pri = []
seg = []
ter = []
cua = []
d = recibido.split("\n")

if (len(d) > 37):
d = d[1:] #ignore banner message for first try
else:
if (len(d) < 35):
print recibido
return ""
n = 0
while (n<37):
t = d[n]
if (n>1 and n<8):
pri.append([x for x in t.split(" ") if x.isdigit() ]) #ignore color codes only get the numbers
if (n>11 and n<18):
seg.append([x for x in t.split(" ") if x.isdigit() ])
if (n>21 and n<28):
ter.append([x for x in t.split(" ") if x.isdigit() ])
if (n>29 and n<36):
cua.append([x for x in t.split(" ") if x.isdigit() ])
if n == 8:
psel = [x for x in t.split(" ") if x.isdigit() ]
if n == 18:
ssel = [x for x in t.split(" ") if x.isdigit() ]
if n == 28:
tsel = [x for x in t.split(" ") if x.isdigit() ]
n+=1
p1 = buscar_en_pos(buscar(pri, psel[0]), seg, ssel[0])
p1 = buscar_en_pos(p1, ter, tsel[0])
p2 = buscar_en_pos(buscar(pri, psel[1]), seg, ssel[1])
p2 = buscar_en_pos(p2, ter, tsel[1])
p3 = buscar_en_pos(buscar(pri, psel[2]), seg, ssel[2])
p3 = buscar_en_pos(p3, ter, tsel[2])
p4 = buscar_en_pos(buscar(pri, psel[3]), seg, ssel[3])
p4 = buscar_en_pos(p4, ter, tsel[3])
return cua[p1[0][0]][p1[0][1]]+" "+cua[p2[0][0]][p2[0][1]]+" "+cua[p3[0][0]][p3[0][1]]+" "+ cua[p4[0][0]][p4[0][1]]

s = socket.socket()
s.connect(("140.197.217.85", 10435))
s.send("5fd78efc6620f6\n")
while(True):
recibido = s.recv(1024)
if ("NOVABANK ATM menu" in recibido):
recibido = recibido + s.recv(1024)
recibido = recibido + s.recv(1024)
print recibido
s.close()
exit()
recibido = recibido + s.recv(1024)
recibido = recibido + s.recv(1024)
recibido = recibido + s.recv(1024)
d = recibido.split("\n")
x = procesar(recibido)+"\n"
print x
s.send(x)
s.close()
exit()