import subprocess
import socket
host = 'pieceofeight2.shallweplayaga.me'
port = 8273
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
def solve():
number = 1
while True:
msg = s.recv(1024).strip()
print msg
if 'The key is:' in msg: break
q = msg.split('\n')
q = (q[ 2][3] + q[ 2][9] + q[ 2][15] +
q[ 7][3] + q[ 7][9] + q[ 7][15] +
q[12][3] + q[12][9] + q[12][15]).replace(' ', '0')
print "No %d:"%number, q
number += 1
output = subprocess.check_output("./eight " + q, shell=True)
answer = output.split()[0]
print "answer:", answer
s.send(answer + "\n");
while True:
msg = s.recv(8192)
print msg
if 'Press a key to start again' in msg: break
if 'Too slow!' in msg: return
s.send("\n");
solve()
aW1wb3J0IHN1YnByb2Nlc3MKaW1wb3J0IHNvY2tldAoKaG9zdCA9ICdwaWVjZW9mZWlnaHQyLnNoYWxsd2VwbGF5YWdhLm1lJwpwb3J0ID0gODI3MwoKcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKcy5jb25uZWN0KChob3N0LHBvcnQpKQoKZGVmIHNvbHZlKCk6CiAgICAgICAgbnVtYmVyID0gMQogICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICBtc2cgPSBzLnJlY3YoMTAyNCkuc3RyaXAoKQogICAgICAgICAgICAgICAgcHJpbnQgbXNnCiAgICAgICAgICAgICAgICBpZiAnVGhlIGtleSBpczonIGluIG1zZzogYnJlYWsKICAgICAgICAgICAgICAgIHEgPSBtc2cuc3BsaXQoJ1xuJykKICAgICAgICAgICAgICAgIHEgPSAocVsgMl1bM10gKyBxWyAyXVs5XSArIHFbIDJdWzE1XSArCiAgICAgICAgICAgICAgICAgICAgIHFbIDddWzNdICsgcVsgN11bOV0gKyBxWyA3XVsxNV0gKwogICAgICAgICAgICAgICAgICAgICBxWzEyXVszXSArIHFbMTJdWzldICsgcVsxMl1bMTVdKS5yZXBsYWNlKCcgJywgJzAnKQogICAgICAgICAgICAgICAgcHJpbnQgIk5vICVkOiIlbnVtYmVyLCBxCiAgICAgICAgICAgICAgICBudW1iZXIgKz0gMQogICAgICAgICAgICAgICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoIi4vZWlnaHQgIiArIHEsIHNoZWxsPVRydWUpCiAgICAgICAgICAgICAgICBhbnN3ZXIgPSBvdXRwdXQuc3BsaXQoKVswXQogICAgICAgICAgICAgICAgcHJpbnQgImFuc3dlcjoiLCBhbnN3ZXIKICAgICAgICAgICAgICAgIHMuc2VuZChhbnN3ZXIgKyAiXG4iKTsKICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IHMucmVjdig4MTkyKQogICAgICAgICAgICAgICAgICAgICAgICBwcmludCBtc2cKICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ1ByZXNzIGEga2V5IHRvIHN0YXJ0IGFnYWluJyBpbiBtc2c6IGJyZWFrCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICdUb28gc2xvdyEnIGluIG1zZzogcmV0dXJuCiAgICAgICAgICAgICAgICBzLnNlbmQoIlxuIik7Cgpzb2x2ZSgpCg==