import math
def get_num():
    n = int(input())
    num = 1
    first = True
    for i in range(n):
        line = input()
        idx = line.index('#')
        if first:
            prev_idx = idx
            first = False
            continue
        if prev_idx < idx:
            num *= 2
        else:
            num = num*2 + 1
        prev_idx = idx
    return num


num1 = get_num()
num2 = get_num()

num = num1 + num2
# print(f"num1: {num1}, num2: {num2}, num: {num}")
# num = 10

matrix = []
binary = []
# print(f"num = {num}")
height = math.ceil(math.log2(num+1))
print(height)

# for i in range(1,34):
#     print(f"num: {i}, log2: {math.ceil(math.log2(i+1))}")

idx = 0
max = 0
min = 0
while num >= 1:
    even = num % 2 == 0
    binary.append(idx)
    if idx < min:
        min = idx
    if idx > max:
        max = idx
    if even:
        idx -= 1
    else:
        idx += 1
    num //= 2
    # print(num)
binary = binary[::-1]

width = max - min + 1
# print(width)
# print(f"min: {min}, max: {max}, width: {width}")
# print(binary)
binary = [b - min for b in binary]
# print(binary)

matrix = []
for b in binary:
    for a in range(b):
        print('.', end="")
    print('#', end="")
    for a in range(b+1,width):
        print('.', end="")
    print()





"""
4
#...
.#..
..#.
...#
3
..#
.#.
#..

3
#..
.#.
..#
3
.#
#.
.#

2
#.
.#
4
..#
.#.
#..
.#.

"""