# https://atcoder.jp/contests/agc038/tasks/agc038_a

from itertools import combinations

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

for _ in range(B):
    print("0" * A + "1" * (W-A))
for _ in range(H - B):
    print("1" * A + "0" * (W-A)) from itertools import combinations H, W, A, B = map(int, input().split()) H map(int, input().split()) map int input().split() ().split () input split W A B for _ in range(B):
    print("0" * A + "1" * (W-A)) _ range(B) range B print("0" * A + "1" * (W-A)) print "0" * A + "1" * (W-A) "0" * A "0" A "1" * (W-A) "1" W-A W A for _ in range(H - B):
    print("1" * A + "0" * (W-A)) _ range(H - B) range H - B H B print("1" * A + "0" * (W-A)) print "1" * A + "0" * (W-A) "1" * A "1" A "0" * (W-A) "0" W-A W A W, A, B = map(int, input().split()) map(int, input().split()) W B = map(int, input().split()) map(int, input().split()) B A, B = map(int, input().split()) map(int, input().split()) A H, W, A, B = map(int, input().split()) map(int, input().split()) H
# https://atcoder.jp/contests/agc038/tasks/agc038_a

from itertools import combinations

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

for _ in range(B):
    print("0" * A + "1" * (W-A))
for _ in range(H - B):
    print("1" * A + "0" * (W-A))