def bf2un(s):
	return int("1"+''.join(bin("><+-.,[]".find(n))[2:].zfill(3)for n in s),2)

def un2bf(n):
	p=bin(n)[3:]
	return ''.join("><+-.,[]"[int(p[i:i+3],2)]for i in range(0,len(p),3))
    
def main():
	bfs = ["+.",",[.,]","++++++[>++++++++++++<-]>.>++++++++++[>++++++++++<-]>+.+++++++..+++.>++++[>+++++++++++<-]>.<+++[>----<-]>.<<<<<+++[>+++++<-]>.>>.+++.------.--------.>>+."]
	uns = [84,56623,239234107117088762456728667968602154633390994619022073954825877681363348343524058579165785448174718768772358485472231582844556848101441556]
	print "Brainfuck -> Unary\n--------------"
	for c in bfs: print bf2un(c)
	print "Unary -> Brainfuck\n--------------"
	for c in uns: print un2bf(c)
   
if __name__ == '__main__':
	main()