import math
import sys
lines = sys.stdin.readlines()

N_first = int(lines[0])
first = 1
for i in range(N_first-1):
    curr = lines[i+1].find("#")
    next = lines[i+2].find("#")

    if curr > next:
        first = 2*first + 1
    else:
        first *= 2

pointer = N_first + 1
N_second = int(lines[pointer])
second = 1
for i in range(N_second-1):
    curr = lines[i+ pointer + 1].find("#")
    next = lines[i+pointer + 2].find("#")

    if curr > next:
        second = 2 * second + 1
    else:
        second *= 2

out = first + second



depth = int(math.log2(out) + 1)
indices = [0] * depth
min_idx = 0
max_idx = 0
for i in reversed(range(0, depth-1)):
    if out % 2 == 0:
        indices[i] = indices[i + 1] + 1
    else:
        indices[i] = indices[i + 1] - 1
    if indices[i] < min_idx:
        min_idx = indices[i]
    elif indices[i] > max_idx:
        max_idx = indices[i]
    out = out // 2

print(depth)
width = max_idx - min_idx
for i in indices:
    for j in reversed(range(width + 1)):
        if j == i - min_idx:
            print('#', end='')
        else: print('.', end='')
    print()
print()
