#!/usr/bin/env python

H, W, A, B = list(map(int,input().split()))

# 1 1 1 1 1 1 0 0 0 
# 1 1 1 1 1 1 0 0 0
# 0 0 0 0 0 0 1 1 1
# 0 0 0 0 0 0 1 1 1
# 0 0 0 0 0 0 1 1 1


row1 = "1" * max(A, W-A) + "0" * min(A,W-A)
row2 = "0" * max(A, W-A) + "1" * min(A,W-A)
for i in range(max(B,H-B)):
    print(row1)
for i in range(min(B,H-B)):
    print(row2) H, W, A, B = list(map(int,input().split())) H list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split W A B row1 = "1" * max(A, W-A) + "0" * min(A,W-A) row1 "1" * max(A, W-A) + "0" * min(A,W-A) "1" * max(A, W-A) "1" max(A, W-A) max A W-A W A "0" * min(A,W-A) "0" min(A,W-A) min A W-A W A row2 = "0" * max(A, W-A) + "1" * min(A,W-A) row2 "0" * max(A, W-A) + "1" * min(A,W-A) "0" * max(A, W-A) "0" max(A, W-A) max A W-A W A "1" * min(A,W-A) "1" min(A,W-A) min A W-A W A for i in range(max(B,H-B)):
    print(row1) i range(max(B,H-B)) range max(B,H-B) max B H-B H B print(row1) print row1 for i in range(min(B,H-B)):
    print(row2) i range(min(B,H-B)) range min(B,H-B) min B H-B H B print(row2) print row2 H, W, A, B = list(map(int,input().split())) list(map(int,input().split())) H W, A, B = list(map(int,input().split())) list(map(int,input().split())) W B = list(map(int,input().split())) list(map(int,input().split())) B row2 = "0" * max(A, W-A) + "1" * min(A,W-A) "0" * max(A, W-A) + "1" * min(A,W-A) row2 A, B = list(map(int,input().split())) list(map(int,input().split())) A row1 = "1" * max(A, W-A) + "0" * min(A,W-A) "1" * max(A, W-A) + "0" * min(A,W-A) row1
#!/usr/bin/env python

H, W, A, B = list(map(int,input().split()))

# 1 1 1 1 1 1 0 0 0 
# 1 1 1 1 1 1 0 0 0
# 0 0 0 0 0 0 1 1 1
# 0 0 0 0 0 0 1 1 1
# 0 0 0 0 0 0 1 1 1


row1 = "1" * max(A, W-A) + "0" * min(A,W-A)
row2 = "0" * max(A, W-A) + "1" * min(A,W-A)
for i in range(max(B,H-B)):
    print(row1)
for i in range(min(B,H-B)):
    print(row2)