#include using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int H, W, K; cin >> H >> W >> K; if (K == 0) { string S(W, '.'); for (int i = 0; i < H; i++) { cout << S << '\n'; } return 0; } int M = H * W - H - W + 2; if (K > M) { cout << "-1\n"; return 0; } if (H == 1) { if (K == 1) { cout << "." << string(W - 1, '#') << '\n'; return 0; } else { cout << "-1\n"; return 0; } } if (W == 1) { if (K == 1) { cout << ".\n"; for (int i = 0; i < H - 1; i++) { cout << "#\n"; } return 0; } else { cout << "-1\n"; return 0; } } if (K == 1) { cout << "-1\n"; return 0; } if (K <= H) { string S(W - 1, '.'); for (int i = 0; i < H; i++) { cout << (i < K - 1 ? '#' : '.') << S << '\n'; } return 0; } if (H % 2 == 1) { vector S(H, string(W, '.')); for (int i = 0; i < H; i++) S[i][0] = '#'; if (K % 2 == 1) { int c = (K - H) / 2; for (int j = 0; j < c; j++) { S[j / (W - 2) * 2 + 1][j % (W - 2) + 1] = '#'; } } else { int c = (K - H + 1) / 2; S[0][1] = '#'; for (int j = 0; j < c; j++) { S[j / (W - 2) * 2 + 1][j % (W - 2) + 1] = '#'; } } for (int i = 0; i < H; i++) cout << S[i] << '\n'; } else { if (K <= H + W - 2) { for (int i = 0; i < W; i++) { cout << (i < K - (H - 1) ? '#' : '.'); } string S(W - 1, '.'); for (int i = 1; i < H; i++) { cout << '#' << S << '\n'; } return 0; } vector S(H, string(W, '.')); for (int i = 0; i < H; i++) S[i][0] = '#'; for (int j = 0; j < W; j++) S[0][j] = '#'; if (K % 2 == (H + W - 2) % 2) { int c = (K - (H + W - 2)) / 2; for (int i = 0; i < c; i++) { S[i / (W - 2) * 2 + 2][i % (W - 2) + 1] = '#'; } } else { S[0][W - 1] = '.'; S[0][W - 2] = '.'; int c = (K - (H + W - 3)) / 2; for (int i = 0; i < c; i++) { S[i / (W - 2) * 2 + 2][i % (W - 2) + 1] = '#'; } } for (int i = 0; i < H; i++) cout << S[i] << '\n'; } }