- from __future__ import print_function 
- from collections import defaultdict 
-   
- cups = defaultdict(set) 
-   
- def add(): 
-     for y in sorted(cups, reverse=True): 
-         for x in sorted(cups[y]): 
-             if x+1 in cups[y] and (y+1 not in cups or x not in cups[y+1]): 
-                 cups[y+1].add(x) 
-                 return 
-   
-     x = 0 
-     while True: 
-         if x not in cups[0]: 
-             cups[0].add(x) 
-             return 
-   
-         x += 1 
-   
- def remove(): 
-     for y in sorted(cups, reverse=True): 
-         cups[y].remove(min(cups[y])) 
-   
-         if not cups[y]: 
-             del cups[y] 
-   
-         return 
-   
- def print_cups(): 
-     for y, row in sorted(cups.items(), reverse=True): 
-         print(" "*y + " ".join(" A"[x in row] for x in range(max(row)+1))) 
-   
- instructions = "" 
-   
- try: 
-     input = raw_input 
- except NameError: 
-     pass 
-   
- while True: 
-     try: 
-         line = input() 
-         if not line: break 
-         instructions += line 
-   
-     except EOFError: 
-         break 
-   
- a = None 
- r = None 
-   
- for c in [x for x in instructions if ' ' <= x <= '~']: 
-     if a is None or c == a: 
-         add() 
-         a = c 
-   
-     elif r is None or c == r: 
-         remove() 
-         r = c 
-   
- print_cups() 
				ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgpmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAoKY3VwcyA9IGRlZmF1bHRkaWN0KHNldCkKCmRlZiBhZGQoKToKICAgIGZvciB5IGluIHNvcnRlZChjdXBzLCByZXZlcnNlPVRydWUpOgogICAgICAgIGZvciB4IGluIHNvcnRlZChjdXBzW3ldKToKICAgICAgICAgICAgaWYgeCsxIGluIGN1cHNbeV0gYW5kICh5KzEgbm90IGluIGN1cHMgb3IgeCBub3QgaW4gY3Vwc1t5KzFdKToKICAgICAgICAgICAgICAgIGN1cHNbeSsxXS5hZGQoeCkKICAgICAgICAgICAgICAgIHJldHVybgoKICAgIHggPSAwCiAgICB3aGlsZSBUcnVlOgogICAgICAgIGlmIHggbm90IGluIGN1cHNbMF06CiAgICAgICAgICAgIGN1cHNbMF0uYWRkKHgpCiAgICAgICAgICAgIHJldHVybgoKICAgICAgICB4ICs9IDEKCmRlZiByZW1vdmUoKToKICAgIGZvciB5IGluIHNvcnRlZChjdXBzLCByZXZlcnNlPVRydWUpOgogICAgICAgIGN1cHNbeV0ucmVtb3ZlKG1pbihjdXBzW3ldKSkKCiAgICAgICAgaWYgbm90IGN1cHNbeV06CiAgICAgICAgICAgIGRlbCBjdXBzW3ldCgogICAgICAgIHJldHVybgoKZGVmIHByaW50X2N1cHMoKToKICAgIGZvciB5LCByb3cgaW4gc29ydGVkKGN1cHMuaXRlbXMoKSwgcmV2ZXJzZT1UcnVlKToKICAgICAgICBwcmludCgiICIqeSArICIgIi5qb2luKCIgQSJbeCBpbiByb3ddIGZvciB4IGluIHJhbmdlKG1heChyb3cpKzEpKSkKCmluc3RydWN0aW9ucyA9ICIiCgp0cnk6CiAgICBpbnB1dCA9IHJhd19pbnB1dApleGNlcHQgTmFtZUVycm9yOgogICAgcGFzcwoKd2hpbGUgVHJ1ZToKICAgIHRyeToKICAgICAgICBsaW5lID0gaW5wdXQoKQogICAgICAgIGlmIG5vdCBsaW5lOiBicmVhawogICAgICAgIGluc3RydWN0aW9ucyArPSBsaW5lCiAgICAgICAgCiAgICBleGNlcHQgRU9GRXJyb3I6CiAgICAgICAgYnJlYWsKCmEgPSBOb25lCnIgPSBOb25lCgpmb3IgYyBpbiBbeCBmb3IgeCBpbiBpbnN0cnVjdGlvbnMgaWYgJyAnIDw9IHggPD0gJ34nXToKICAgIGlmIGEgaXMgTm9uZSBvciBjID09IGE6CiAgICAgICAgYWRkKCkKICAgICAgICBhID0gYwoKICAgIGVsaWYgciBpcyBOb25lIG9yIGMgPT0gcjoKICAgICAgICByZW1vdmUoKQogICAgICAgIHIgPSBjCgpwcmludF9jdXBzKCk=
				
				
				
				
				
			 
			
				
			
			
				
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYXJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhcnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyYWFhYWFhYWFhYWFhYWFhYWFhYXJycnJycnJycnJycnJycmFhYWFhYWFhYWFhYWFhcnJycnJycnJycnJhYWFhYWFhYQ==
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrraaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrraaaaaaaaaaaaaarrrrrrrrrrraaaaaaaa