# FALSE Interpreter.
# esolangs.org/wiki/FALSE
# Author: mbomb007
import sys
from operator import*
stack = []
var = dict()
def I(stack,i):stack+=[i]
def C(stack,c):stack+=[ord(c)]
def dup(stack):stack+=[stack[-1]]
def drop(stack):stack.pop()
def swap(stack):stack[-2:]=stack[-1:-3:-1]
def rot(stack):stack[-3:]=stack[-2:]+[stack[-3]]
def pick(stack):stack+=[stack[~stack.pop()]]
# +-*/&|>=
def arith(stack,n):stack[-2:]=[(add,sub,mul,floordiv,and_,or_,gt,eq)[n](*stack[-2:])]
def negate(stack):stack[-1]=-stack[-1]
def tilde(stack):stack[-1]=~stack[-1]
def byref(stack,v):C(stack,v)
def store(stack):global var;a=stack.pop();var[chr(a)]=stack.pop()
def fetch(stack):global var;stack+=[var[chr(stack.pop())]]
def read(stack):
try:C(stack,sys.stdin.read(1))
except:I(stack,-1)
def write(stack):print(chr(stack.pop()),end='')
def num(stack):print(stack.pop(),end='')
def flush():sys.stdout.flush()
def main(code):
global stack,var
code=list(code)
while code:
_=''
while code[0]in"0123456789":_+=code.pop(0)
if _:stack+=[int(_)]
_=code.pop(0);o=ord(_)
if 96<o<123:C(stack,_)
A="+-*/&|>="
if _ in A:arith(stack,A.index(_))
if o==39:C(stack,code.pop(0))
if o==91:
q=0;code2=''
while']'!=code[0]or q:
if code[0]=='[':q+=1
if code[0]==']':q-=1
code2+=code.pop(0)
stack+=[lambda:main(code2)]
if o==34:q=code.index('"');print(*code[:q],sep='',end='');code=code[q+1:]
if o==123:code=code[code.index('}')+1:]
if o==33:stack.pop()()
if o==63:
f=stack.pop()
if stack.pop():f()
if o==35:
f=stack.pop();c=stack.pop()
while c():f()
if _=='ß':flush()
if _ in"$%\\@ø_~:;^,.":[dup,drop,swap,rot,pick,negate,tilde,store,fetch,read,write,num][r"$%\@ø_~:;^,.".index(_)](stack)
#print(stack)
code=r'''
33 49a:," "a;,
'''
main(code)
print()
code=r'''
{ factorial program in false! }
[$1=~[$1-f;!*]?]f: { fac() in false }
"calculate the factorial of [1..8]: "
ß^ß'0-$$0>~\8>|$
"result: "
~[\f;!.]?
["illegal input!"]?"
"
'''
main(code)
print()
IyBGQUxTRSBJbnRlcnByZXRlci4KIyBlc29sYW5ncy5vcmcvd2lraS9GQUxTRQojIEF1dGhvcjogbWJvbWIwMDcKCmltcG9ydCBzeXMKZnJvbSBvcGVyYXRvciBpbXBvcnQqCgpzdGFjayA9IFtdCnZhciA9IGRpY3QoKQoKZGVmIEkoc3RhY2ssaSk6c3RhY2srPVtpXQpkZWYgQyhzdGFjayxjKTpzdGFjays9W29yZChjKV0KCmRlZiBkdXAoc3RhY2spOnN0YWNrKz1bc3RhY2tbLTFdXQpkZWYgZHJvcChzdGFjayk6c3RhY2sucG9wKCkKZGVmIHN3YXAoc3RhY2spOnN0YWNrWy0yOl09c3RhY2tbLTE6LTM6LTFdCmRlZiByb3Qoc3RhY2spOnN0YWNrWy0zOl09c3RhY2tbLTI6XStbc3RhY2tbLTNdXQpkZWYgcGljayhzdGFjayk6c3RhY2srPVtzdGFja1t+c3RhY2sucG9wKCldXQoKIyArLSovJnw+PQpkZWYgYXJpdGgoc3RhY2ssbik6c3RhY2tbLTI6XT1bKGFkZCxzdWIsbXVsLGZsb29yZGl2LGFuZF8sb3JfLGd0LGVxKVtuXSgqc3RhY2tbLTI6XSldCmRlZiBuZWdhdGUoc3RhY2spOnN0YWNrWy0xXT0tc3RhY2tbLTFdCmRlZiB0aWxkZShzdGFjayk6c3RhY2tbLTFdPX5zdGFja1stMV0KCmRlZiBieXJlZihzdGFjayx2KTpDKHN0YWNrLHYpCmRlZiBzdG9yZShzdGFjayk6Z2xvYmFsIHZhcjthPXN0YWNrLnBvcCgpO3ZhcltjaHIoYSldPXN0YWNrLnBvcCgpCmRlZiBmZXRjaChzdGFjayk6Z2xvYmFsIHZhcjtzdGFjays9W3ZhcltjaHIoc3RhY2sucG9wKCkpXV0KCmRlZiByZWFkKHN0YWNrKToKCXRyeTpDKHN0YWNrLHN5cy5zdGRpbi5yZWFkKDEpKQoJZXhjZXB0Okkoc3RhY2ssLTEpCmRlZiB3cml0ZShzdGFjayk6cHJpbnQoY2hyKHN0YWNrLnBvcCgpKSxlbmQ9JycpCmRlZiBudW0oc3RhY2spOnByaW50KHN0YWNrLnBvcCgpLGVuZD0nJykKZGVmIGZsdXNoKCk6c3lzLnN0ZG91dC5mbHVzaCgpCgpkZWYgbWFpbihjb2RlKToKCWdsb2JhbCBzdGFjayx2YXIKCWNvZGU9bGlzdChjb2RlKQoJd2hpbGUgY29kZToKCQlfPScnCgkJd2hpbGUgY29kZVswXWluIjAxMjM0NTY3ODkiOl8rPWNvZGUucG9wKDApCgkJaWYgXzpzdGFjays9W2ludChfKV0KCQlfPWNvZGUucG9wKDApO289b3JkKF8pCgkJaWYgOTY8bzwxMjM6QyhzdGFjayxfKQoJCUE9IistKi8mfD49IgoJCWlmIF8gaW4gQTphcml0aChzdGFjayxBLmluZGV4KF8pKQoJCWlmIG89PTM5OkMoc3RhY2ssY29kZS5wb3AoMCkpCgkJaWYgbz09OTE6CgkJCXE9MDtjb2RlMj0nJwoJCQl3aGlsZSddJyE9Y29kZVswXW9yIHE6CgkJCQlpZiBjb2RlWzBdPT0nWyc6cSs9MQoJCQkJaWYgY29kZVswXT09J10nOnEtPTEKCQkJCWNvZGUyKz1jb2RlLnBvcCgwKQoJCQlzdGFjays9W2xhbWJkYTptYWluKGNvZGUyKV0KCQlpZiBvPT0zNDpxPWNvZGUuaW5kZXgoJyInKTtwcmludCgqY29kZVs6cV0sc2VwPScnLGVuZD0nJyk7Y29kZT1jb2RlW3ErMTpdCgkJaWYgbz09MTIzOmNvZGU9Y29kZVtjb2RlLmluZGV4KCd9JykrMTpdCgkJaWYgbz09MzM6c3RhY2sucG9wKCkoKQoJCWlmIG89PTYzOgoJCQlmPXN0YWNrLnBvcCgpCgkJCWlmIHN0YWNrLnBvcCgpOmYoKQoJCWlmIG89PTM1OgoJCQlmPXN0YWNrLnBvcCgpO2M9c3RhY2sucG9wKCkKCQkJd2hpbGUgYygpOmYoKQoJCWlmIF89PSfDnyc6Zmx1c2goKQoJCWlmIF8gaW4iJCVcXEDDuF9+OjteLC4iOltkdXAsZHJvcCxzd2FwLHJvdCxwaWNrLG5lZ2F0ZSx0aWxkZSxzdG9yZSxmZXRjaCxyZWFkLHdyaXRlLG51bV1bciIkJVxAw7hffjo7XiwuIi5pbmRleChfKV0oc3RhY2spCgkKCSNwcmludChzdGFjaykKCmNvZGU9cicnJwozMyA0OWE6LCIgImE7LAonJycKbWFpbihjb2RlKQpwcmludCgpCgpjb2RlPXInJycKeyBmYWN0b3JpYWwgcHJvZ3JhbSBpbiBmYWxzZSEgfQoKWyQxPX5bJDEtZjshKl0/XWY6ICAgICAgICAgIHsgZmFjKCkgaW4gZmFsc2UgfQoKImNhbGN1bGF0ZSB0aGUgZmFjdG9yaWFsIG9mIFsxLi44XTogIgrDn17DnycwLSQkMD5+XDg+fCQKInJlc3VsdDogIgp+W1xmOyEuXT8KWyJpbGxlZ2FsIGlucHV0ISJdPyIKIgonJycKbWFpbihjb2RlKQpwcmludCgpCgk=