def f(s):
a=s.lstrip('[')
b,c,d=a.rstrip(']'),0,''
for e in b:d+=str('[<>,.-+]'.find(e));c+=(e=='[')-(e>'[')*(c>0)
return int('0'+d+(len(a)-len(b)-c)*'7',8)+1
def g(s):
a=s.strip('[')
b=a.rstrip(']')
c=d=0
for e in b:d=d*8+'[<>,.-+]'.find(e);c+=(e=='[')-(c>0!=e>'[')
return -~d*8**(len(a)-len(b)-c)
def enumerate(n):
if n==0: return ['']
a=[]
for c in '+-<>,.':
for x in enumerate(n-1):
a+=[c+x]
for i in range(n-1):
for x in enumerate(i):
for y in enumerate(n-2-i):
a+=['['+x+']'+y]
return a
def verify():
i=1
for n in range(7):
for x in enumerate(n):
if f(x)!=g(x):
print i,f(x),g(x)
1/0
i+=1
print 'n=%d done'%n
print 'ok'
verify()
ZGVmIGYocyk6CiAgICBhPXMubHN0cmlwKCdbJykKICAgIGIsYyxkPWEucnN0cmlwKCddJyksMCwnJwogICAgZm9yIGUgaW4gYjpkKz1zdHIoJ1s8PiwuLStdJy5maW5kKGUpKTtjKz0oZT09J1snKS0oZT4nWycpKihjPjApCiAgICByZXR1cm4gaW50KCcwJytkKyhsZW4oYSktbGVuKGIpLWMpKic3Jyw4KSsxCgpkZWYgZyhzKToKICAgIGE9cy5zdHJpcCgnWycpCiAgICBiPWEucnN0cmlwKCddJykKICAgIGM9ZD0wCiAgICBmb3IgZSBpbiBiOmQ9ZCo4KydbPD4sLi0rXScuZmluZChlKTtjKz0oZT09J1snKS0oYz4wIT1lPidbJykKICAgIHJldHVybiAtfmQqOCoqKGxlbihhKS1sZW4oYiktYykKCmRlZiBlbnVtZXJhdGUobik6CiAgICBpZiBuPT0wOiByZXR1cm4gWycnXQogICAgCiAgICBhPVtdCiAgICAKICAgIGZvciBjIGluICcrLTw+LC4nOgogICAgICAgIGZvciB4IGluIGVudW1lcmF0ZShuLTEpOgogICAgICAgICAgICBhKz1bYyt4XQogICAgCiAgICBmb3IgaSBpbiByYW5nZShuLTEpOgogICAgICAgIGZvciB4IGluIGVudW1lcmF0ZShpKToKICAgICAgICAgICAgZm9yIHkgaW4gZW51bWVyYXRlKG4tMi1pKToKICAgICAgICAgICAgICAgIGErPVsnWycreCsnXScreV0KICAgIAogICAgcmV0dXJuIGEKCmRlZiB2ZXJpZnkoKToKICAgIGk9MQogICAgCiAgICBmb3IgbiBpbiByYW5nZSg3KToKICAgICAgICBmb3IgeCBpbiBlbnVtZXJhdGUobik6CiAgICAgICAgICAgIGlmIGYoeCkhPWcoeCk6CiAgICAgICAgICAgICAgICBwcmludCBpLGYoeCksZyh4KQogICAgICAgICAgICAgICAgMS8wCiAgICAgICAgICAgIGkrPTEKICAgICAgICBwcmludCAnbj0lZCBkb25lJyVuCiAgICAKICAgIHByaW50ICdvaycKCnZlcmlmeSgp