while True: try: n, m, k = map(int, input().split()) if k < max(n, m): print(-1) else: # 创建一个全是0的二维数组 lst = [[0 for _ in range(m)] for _ in range(n)] # 列表推导式 # 首先把数组的对角线给放上小球 i, j = 0, 0 while i <= n-1 and j <= m-1: lst[i][j] = 1 i += 1 j += 1 # 给剩下的行或列放上小球 if j < m-1: while j <= m-1: lst[n-1][j] = 1 j += 1 else: # 即i<n-1的情况 while i < n-1: lst[i][m-1] = 1 i += 1 # 把剩余的小球放在最后一个位置上 lst[n-1][m-1] = k - max(n, m) + 1 for x in range(n): print(' '.join(map(str, lst[x]))) except: break