import random as r
out=''
file=open(input('.mm: ')+'.mm','r').readlines();import time;import os;cls=lambda:os.system('cls'if os.name in ('nt','dos')else'clear');row=0;column=0;pointer='';directions=['up','down','left','right'];direction='down';stack=[0]
def move(d):
global row, column
if d=='down':row+=1
if d=='left':column-=1
if d=='right':column+=1
def process(d):
global row, column, direction, stack, out
#print(str(column)+', '+str(row))
#print(stack)
#print(out)
try:
pointer=file[row][column]
direction='down'
if pointer=='\\':
if direction=='down':
direction='right'
if pointer=='/':
if direction=='down':
direction='left'
if pointer in '0123456789':
stack+=[int(pointer)]
if pointer=='#':
stack+=[int(input('> '))]
if pointer=='?':
stack+=[ord(input('> '))]
if pointer=='g':
if stack[-1]>stack[-2]:
stack+=[True]
else: stack+=[False]
if pointer=='{':
if stack[-1]==True:
direction='left'
else: direction='right'
if pointer=='}':
if stack[-1]==True:
direction='right'
else: direction='left'
if pointer=='~':
stack=stack[:-1]
if pointer=='.':
print(stack[-1])
if pointer=='&':
stack[-1],stack[-2]=stack[-2],stack[-1]
if pointer=='+':
stack+=[stack[-2]+stack[-1]]
if pointer=='-':
stack+=[stack[-2]-stack[-1]]
if pointer=='*':
stack+=[stack[-2]*stack[-1]]
if pointer=='`':
stack+=[stack[-2]/stack[-1]]
if pointer=='x':
while not file[row][column]=='o':
row-=1
return
if pointer==',':
out+=chr(stack[-1])
if pointer=='!':
time.sleep(9999*9998*9997);exit()
if pointer=='"':
move(direction)
stack+=[ord(file[row][column])]
if pointer=='p':
print(out)
out=''
if pointer=="'":
stack+=(ord(x) for x in str(stack[-1]))
except:
exit()
move(direction)
cls()
while True:
process('down')
print(out)
aW1wb3J0IHJhbmRvbSBhcyByCm91dD0nJwpmaWxlPW9wZW4oaW5wdXQoJy5tbTogJykrJy5tbScsJ3InKS5yZWFkbGluZXMoKTtpbXBvcnQgdGltZTtpbXBvcnQgb3M7Y2xzPWxhbWJkYTpvcy5zeXN0ZW0oJ2NscydpZiBvcy5uYW1lIGluICgnbnQnLCdkb3MnKWVsc2UnY2xlYXInKTtyb3c9MDtjb2x1bW49MDtwb2ludGVyPScnO2RpcmVjdGlvbnM9Wyd1cCcsJ2Rvd24nLCdsZWZ0JywncmlnaHQnXTtkaXJlY3Rpb249J2Rvd24nO3N0YWNrPVswXQpkZWYgbW92ZShkKToKICAgIGdsb2JhbCByb3csIGNvbHVtbgogICAgaWYgZD09J2Rvd24nOnJvdys9MQogICAgaWYgZD09J2xlZnQnOmNvbHVtbi09MQogICAgaWYgZD09J3JpZ2h0Jzpjb2x1bW4rPTEKZGVmIHByb2Nlc3MoZCk6CiAgICBnbG9iYWwgcm93LCBjb2x1bW4sIGRpcmVjdGlvbiwgc3RhY2ssIG91dAogICAgI3ByaW50KHN0cihjb2x1bW4pKycsICcrc3RyKHJvdykpCiAgICAjcHJpbnQoc3RhY2spCiAgICAjcHJpbnQob3V0KQogICAgdHJ5OgogICAgICAgIHBvaW50ZXI9ZmlsZVtyb3ddW2NvbHVtbl0KICAgICAgICBkaXJlY3Rpb249J2Rvd24nCiAgICAgICAgaWYgcG9pbnRlcj09J1xcJzoKICAgICAgICAgICAgaWYgZGlyZWN0aW9uPT0nZG93bic6CiAgICAgICAgICAgICAgICBkaXJlY3Rpb249J3JpZ2h0JwogICAgICAgIGlmIHBvaW50ZXI9PScvJzoKICAgICAgICAgICAgaWYgZGlyZWN0aW9uPT0nZG93bic6CiAgICAgICAgICAgICAgICBkaXJlY3Rpb249J2xlZnQnCiAgICAgICAgaWYgcG9pbnRlciBpbiAnMDEyMzQ1Njc4OSc6CiAgICAgICAgICAgIHN0YWNrKz1baW50KHBvaW50ZXIpXQogICAgICAgIGlmIHBvaW50ZXI9PScjJzoKICAgICAgICAgICAgc3RhY2srPVtpbnQoaW5wdXQoJz4gJykpXQogICAgICAgIGlmIHBvaW50ZXI9PSc/JzoKICAgICAgICAgICAgc3RhY2srPVtvcmQoaW5wdXQoJz4gJykpXQogICAgICAgIGlmIHBvaW50ZXI9PSdnJzoKICAgICAgICAgICAgaWYgc3RhY2tbLTFdPnN0YWNrWy0yXToKICAgICAgICAgICAgICAgIHN0YWNrKz1bVHJ1ZV0KICAgICAgICAgICAgZWxzZTogc3RhY2srPVtGYWxzZV0KICAgICAgICBpZiBwb2ludGVyPT0neyc6CiAgICAgICAgICAgIGlmIHN0YWNrWy0xXT09VHJ1ZToKICAgICAgICAgICAgICAgIGRpcmVjdGlvbj0nbGVmdCcKICAgICAgICAgICAgZWxzZTogZGlyZWN0aW9uPSdyaWdodCcKICAgICAgICBpZiBwb2ludGVyPT0nfSc6CiAgICAgICAgICAgIGlmIHN0YWNrWy0xXT09VHJ1ZToKICAgICAgICAgICAgICAgIGRpcmVjdGlvbj0ncmlnaHQnCiAgICAgICAgICAgIGVsc2U6IGRpcmVjdGlvbj0nbGVmdCcKICAgICAgICBpZiBwb2ludGVyPT0nfic6CiAgICAgICAgICAgIHN0YWNrPXN0YWNrWzotMV0KICAgICAgICBpZiBwb2ludGVyPT0nLic6CiAgICAgICAgICAgIHByaW50KHN0YWNrWy0xXSkKICAgICAgICBpZiBwb2ludGVyPT0nJic6CiAgICAgICAgICAgIHN0YWNrWy0xXSxzdGFja1stMl09c3RhY2tbLTJdLHN0YWNrWy0xXQogICAgICAgIGlmIHBvaW50ZXI9PScrJzoKICAgICAgICAgICAgc3RhY2srPVtzdGFja1stMl0rc3RhY2tbLTFdXQogICAgICAgIGlmIHBvaW50ZXI9PSctJzoKICAgICAgICAgICAgc3RhY2srPVtzdGFja1stMl0tc3RhY2tbLTFdXQogICAgICAgIGlmIHBvaW50ZXI9PScqJzoKICAgICAgICAgICAgc3RhY2srPVtzdGFja1stMl0qc3RhY2tbLTFdXQogICAgICAgIGlmIHBvaW50ZXI9PSdgJzoKICAgICAgICAgICAgc3RhY2srPVtzdGFja1stMl0vc3RhY2tbLTFdXQogICAgICAgIGlmIHBvaW50ZXI9PSd4JzoKICAgICAgICAgICAgd2hpbGUgbm90IGZpbGVbcm93XVtjb2x1bW5dPT0nbyc6CiAgICAgICAgICAgICAgICByb3ctPTEKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgaWYgcG9pbnRlcj09JywnOgogICAgICAgICAgICBvdXQrPWNocihzdGFja1stMV0pCiAgICAgICAgaWYgcG9pbnRlcj09JyEnOgogICAgICAgICAgICB0aW1lLnNsZWVwKDk5OTkqOTk5OCo5OTk3KTtleGl0KCkKICAgICAgICBpZiBwb2ludGVyPT0nIic6CiAgICAgICAgICAgIG1vdmUoZGlyZWN0aW9uKQogICAgICAgICAgICBzdGFjays9W29yZChmaWxlW3Jvd11bY29sdW1uXSldCiAgICAgICAgaWYgcG9pbnRlcj09J3AnOgogICAgICAgICAgICBwcmludChvdXQpCiAgICAgICAgICAgIG91dD0nJwogICAgICAgIGlmIHBvaW50ZXI9PSInIjoKICAgICAgICAgICAgc3RhY2srPShvcmQoeCkgZm9yIHggaW4gc3RyKHN0YWNrWy0xXSkpCiAgICBleGNlcHQ6CiAgICAgICAgZXhpdCgpCiAgICBtb3ZlKGRpcmVjdGlvbikKY2xzKCkKd2hpbGUgVHJ1ZToKICAgIHByb2Nlc3MoJ2Rvd24nKQpwcmludChvdXQp