import math h, w = map(int, input().split()) k = int(input()) def lcm(a, b): return a * b // math.gcd(a, b) c = lcm(2 * h, 2 * w) current_row = 1 current_col = 1 v_dir = 1 # 1 for down, -1 for up h_dir = 1 # 1 for right, -1 for left flips_cycle = [] for _ in range(c): flips_cycle.append((current_row, current_col)) # Process vertical movement next_row = current_row + v_dir if 1 <= next_row <= h: current_row = next_row else: v_dir *= -1 # Process horizontal movement next_col = current_col + h_dir if 1 <= next_col <= w: current_col = next_col else: h_dir *= -1 q, r = divmod(k, c) # Compute flips in cycle flips_in_cycle = {} for coord in flips_cycle: if coord in flips_in_cycle: flips_in_cycle[coord] += 1 else: flips_in_cycle[coord] = 1 # Compute flips in residual flips_in_residual = {} for coord in flips_cycle[:r]: if coord in flips_in_residual: flips_in_residual[coord] += 1 else: flips_in_residual[coord] = 1 # Prepare the grid grid = [['.' for _ in range(w)] for _ in range(h)] for i in range(h): for j in range(w): coord = (i+1, j+1) cycle_count = flips_in_cycle.get(coord, 0) residual_count = flips_in_residual.get(coord, 0) total_parity = ((cycle_count % 2) * (q % 2) + residual_count % 2) % 2 if total_parity: grid[i][j] = '#' for row in grid: print(''.join(row))