def parse_input():
    n1 = int(input())
    number1 = []
    for _ in range(n1):
        number1.append(list(input()))
    n2 = int(input())
    number2 = []
    for _ in range(n2):
        number2.append(list(input()))
    return n1, number1, n2, number2

def print_number(n):
    rows = [0]
    idx = 0
    while n > 1:
        if n % 2 == 1:
            idx += 1
        else:
            idx -= 1
        rows.append(idx)
        n //= 2
    minimal = min(rows)
    width = max(rows) - minimal + 1
    final = []
    for r in rows:
        row = ['.'] * width
        row[r - minimal] = '#'
        final.append(''.join(row))
    print('\n'.join(reversed(final)))

def parse_number(n, number):
    prev = number[0].index('#')
    n = 1
    for row in number[1:]:
        curr = row.index('#')
        n *= 2
        if curr < prev:
            n += 1
        prev = curr
    return n

def main():
    n1, number1, n2, number2 = parse_input()
    a = parse_number(n1, number1)
    b = parse_number(n2, number2)
    output = a + b
    print_number(output)

if __name__ == "__main__":
    main()