- 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