import sys import subprocess class BotWrapper(object): def __init__(self, process): self.process = process self.__name__ = process def __call__(self, board, (x, y)): height = len(board) width = len(board[0]) letter = board[y][x].lower() proc = subprocess.Popen( [self.process], stdin=subprocess.PIPE, stdout=subprocess.PIPE, ) board = '\n'.join([''.join(row) for row in board]) print>>proc.stdin, width, height, letter print>>proc.stdin, board proc.stdin.close() proc.wait() assert proc.returncode == 0, 'Snake died.' output = proc.stdout.read() return output.strip() def process_input(fp=sys.stdin): width, height, letter = fp.readline().split() width = int(width) height = int(height) letter = letter.upper() position = None board = [] for i in xrange(height): row = fp.readline()[:-1] assert len(row) == width pos = row.find(letter) if pos >= 0: position = (pos, i) board.append(list(row)) return board, position