# https://yukicoder.me/problems/no/3765 def main(): N, A, B, C = map(int, input().split()) S = [[-1] * N for _ in range(N)] b_last = None for i in range(N): for j in range(N): if B > 0: S[i][j] = 2 B -= 1 b_last = (i, j) if A > 1: for di, dj in ((0, 1), (1, 0)): new_i = b_last[0] + di new_j = b_last[1] + dj if 0 <= new_i < N and 0 <= new_j < N: S[new_i][new_j] = 1 A -= 1 elif C > 1: for di, dj in ((0, 1), (1, 0)): new_i = b_last[0] + di new_j = b_last[1] + dj if 0 <= new_i < N and 0 <= new_j < N: S[new_i][new_j] = 3 C -= 1 for i in range(N): for j in range(N): if S[i][j] == -1: if A > 0: S[i][j] = 1 A -= 1 elif C >0: S[i][j] = 3 C -= 1 for i in range(N): print("".join(map(str, S[i]))) if __name__ == "__main__": main()