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