from collections import deque

def read_number(N):
    last_pos = -1
    number = 1
    for i in range(N):
        line = input()
        cur_pos = line.find('#')    

        if last_pos != -1:
            if cur_pos > last_pos:
                number = number * 2
            else:
                number = number * 2 + 1

        last_pos = cur_pos
    return number

    

N1 = int(input())
number1 = read_number(N1)

N2 = int(input())
number2 = read_number(N2)


number3 = number1 + number2

number3_copy = number3
left_margin = 0
right_margin = 0
cur_index = 0

while number3_copy != 1:
    if number3_copy % 2 == 0:
        cur_index -= 1
    elif number3_copy % 2 == 1:
        cur_index += 1
    
    left_margin = min(left_margin, cur_index)
    right_margin = max(right_margin, cur_index)

    number3_copy //= 2


cur_left_margin = abs(left_margin)
cur_right_margin = right_margin

symbol = deque()

number3_copy = number3
while True:
    line = "."*cur_left_margin + "#" + "."*cur_right_margin

    symbol.appendleft(line)

    if number3_copy % 2 == 0:
        cur_left_margin -= 1
        cur_right_margin += 1
    elif number3_copy % 2 == 1:
        cur_left_margin += 1
        cur_right_margin -= 1
    
    if number3_copy == 1:
        break

    number3_copy //= 2

print(len(symbol))
for row in symbol:
    print(row)