import sys h, w, m = map(int, sys.stdin.buffer.read().split()) total, middle_count = h * w, h * w - 2 * m if m == 0 or (h > 1 and w > 1 and h % 2 and w % 2 and middle_count == 1): print(-1) raise SystemExit cells = [(r, c) for r in range(h) for c in (range(w) if r % 2 == 0 else range(w - 1, -1, -1))] grid = [[0] * w for _ in range(h)] dense = h > 1 and w > 1 and h % 2 and w % 2 and middle_count <= 2 * w - 3 if dense: values = list(range(m + 1, m + middle_count + 1)) values[-2], values[-1] = values[-1], values[-2] for (r, c), value in zip(cells, values): grid[r][c] = value low, high = 1, total for r in range(h): for c in range(w): if not grid[r][c]: if (r + c) % 2 == 0: grid[r][c], high = high, high - 1 else: grid[r][c], low = low, low + 1 else: k, low, high, middle = m - 1, 1, total, m for index, (r, c) in enumerate(cells, 1): if index <= 2 * k: if index % 2: grid[r][c], low = low, low + 1 else: grid[r][c], high = high, high - 1 else: grid[r][c], middle = middle, middle + 1 print("\n".join(" ".join(map(str, row)) for row in grid))