# https://github.com/tyuyu-62/cp-library from collections import deque, defaultdict from itertools import permutations, product from bisect import bisect_left, bisect_right from heapq import heappush, heappop from random import randint, shuffle from time import perf_counter as pc def II(): return int(input()) def LI(dec=0): return [int(x) - dec for x in input().split()] def SI(): return input() def LS(): return list(input().split()) mod = 998244353 inf = 2002002002002002002 import sys sys.setrecursionlimit(10 ** 6) input = lambda: sys.stdin.readline().rstrip() _buf = [] def print(*args, sep=" "): _buf.append(sep.join(map(str, args))) def debug(*args): if DEBUG: sys.stdout.write(" ".join(map(str, args)) + "\n") DEBUG = True def solve(): H, W, K = LI() KK = K def check(A): cnt = 0 for i in range(H - 1): for j in range(W): cnt += A[i][j] != A[i + 1][j] for i in range(H): for j in range(W - 1): cnt += A[i][j] != A[i][j + 1] return cnt == KK if H == 1 or W == 1: mx = max(H, W) A = ["."] * mx for j in range((K + 1) & 1, K, 2): A[j] = "#" if H == mx: A = [[A[i]] for i in range(H)] else: A = [A] # assert check(A) for ai in A: print("".join(ai)) elif K == 1 or K == 2 * H * W - H - W - 1: print(-1) elif H == 2 or W == 2: K = 2 * H * W - H - W - K mx = max(H, W) mn = min(H, W) A = [["." for _ in range(mx)] for _ in range(mn)] if K % 3 == 1: A[0][0] = A[(mx - 1) & 1][-1] = "#" K -= 4 elif K % 3 == 2: A[0][0] = "#" K -= 2 K = K // 3 for i in range(1, 1 + K): A[i & 1][i] = "#" if H == mx: A = [[A[j][i] for j in range(mn)] for i in range(mx)] for i in range(H): for j in range(W): if (i + j) & 1: continue if A[i][j] == "#": A[i][j] = "." else: A[i][j] = "#" # assert check(A) for ai in A: print("".join(ai)) elif H == W == 3: if K == 0: A = ["...", "...", "..."] elif K == 2: A = ["...", "...", "..#"] elif K == 3: A = ["...", "...", ".#."] elif K == 4: A = ["...", "...", "#.#"] elif K == 5: A = ["...", "#..", "..#"] elif K == 6: A = ["...", "#.#", "..."] elif K == 7: A = [".#.", "...", "#.#"] elif K == 8: A = ["#.#", "...", "#.#"] elif K == 9: A = ["...", "#.#", ".#."] elif K == 10: A = ["#.#", ".#.", "#.."] else: A = [".#.", "#.#", ".#."] # check(A) for ai in A: print("".join(ai)) else: mx = max(H, W) mn = min(H, W) A = [[0] * mn for _ in range(mx)] L = (K - 2) // 4 for i in range(1, mx - 1): for j in range(1, mn - 1): if (i + j) & 1 == 0: if L: L -= 1 K -= 4 A[i][j] = 1 q, r = divmod(K, 3) L = (H - 1) // 2 * 2 + (W - 1) // 2 * 2 if r == 1: q -= 1 for i in range(1, mx - 1): for j in [0, mn - 1]: if (i + j) & 1 == 0: if L: L -= 1 K -= 3 A[i][j] = 1 for i in [0, mx - 1]: for j in range(1, mn - 1): if (i + j) & 1 == 0: if L: L -= 1 K -= 3 A[i][j] = 1 for i in [0, mx - 1]: for j in [0, mn - 1]: if (i + j) & 1 == 0: if K: K -= 2 A[i][j] = 1 A = [[".#"[(A[i][j] ^ (i + j)) & 1] for j in range(mn)] for i in range(mx)] if H == mn: A = [[A[j][i] for j in range(mx)] for i in range(mn)] # check(A) for ai in A: print("".join(ai)) return if __name__ == "__main__": T = 1 # T = II() for _ in range(T): solve() sys.stdout.write("\n".join(_buf) + "\n")