import sys

sys.setrecursionlimit(10 ** 7)
input = sys.stdin.readline
f_inf = float('inf')
mod = 10 ** 9 + 7


def resolve():
    H, W, A, B = map(int, input().split())
        
    res = []
    L1 = ["1"] * A + ["0"] * (W - A)
    for _ in range(B):
        res.append("".join(L1))
    L2 = ["0"] * A + ["1"] * (W - A)
    for _ in range(H - B):
        res.append("".join(L2))
    print(*res, sep="\n")


if __name__ == '__main__':
    resolve() import sys sys sys.setrecursionlimit(10 ** 7) sys.setrecursionlimit sys setrecursionlimit 10 ** 7 10 7 input = sys.stdin.readline input sys.stdin.readline sys.stdin sys stdin readline f_inf = float('inf') f_inf float('inf') float 'inf' mod = 10 ** 9 + 7 mod 10 ** 9 + 7 10 ** 9 10 9 7 def resolve():
    H, W, A, B = map(int, input().split())
        
    res = []
    L1 = ["1"] * A + ["0"] * (W - A)
    for _ in range(B):
        res.append("".join(L1))
    L2 = ["0"] * A + ["1"] * (W - A)
    for _ in range(H - B):
        res.append("".join(L2))
    print(*res, sep="\n") resolve H, W, A, B = map(int, input().split()) H map(int, input().split()) map int input().split() ().split () input split W A B res = [] res [] L1 = ["1"] * A + ["0"] * (W - A) L1 ["1"] * A + ["0"] * (W - A) ["1"] * A ["1"] "1" A ["0"] * (W - A) ["0"] "0" W - A W A for _ in range(B):
        res.append("".join(L1))
     _ range(B) range B res.append("".join(L1)) res.append res append "".join(L1) "".join "" join L1 L2 = ["0"] * A + ["1"] * (W - A) L2 ["0"] * A + ["1"] * (W - A) ["0"] * A ["0"] "0" A ["1"] * (W - A) ["1"] "1" W - A W A for _ in range(H - B):
        res.append("".join(L2))
     _ range(H - B) range H - B H B res.append("".join(L2)) res.append res append "".join(L2) "".join "" join L2 print(*res, sep="\n") print *res res sep="\n" sep "\n" if __name__ == '__main__':
    resolve() __name__ == '__main__' __name__ '__main__' resolve() resolve mod = 10 ** 9 + 7 10 ** 9 + 7 mod input = sys.stdin.readline sys.stdin.readline input f_inf = float('inf') float('inf') f_inf def resolve():
    H, W, A, B = map(int, input().split())
        
    res = []
    L1 = ["1"] * A + ["0"] * (W - A)
    for _ in range(B):
        res.append("".join(L1))
    L2 = ["0"] * A + ["1"] * (W - A)
    for _ in range(H - B):
        res.append("".join(L2))
    print(*res, sep="\n") def resolve():
    H, W, A, B = map(int, input().split())
        
    res = []
    L1 = ["1"] * A + ["0"] * (W - A)
    for _ in range(B):
        res.append("".join(L1))
    L2 = ["0"] * A + ["1"] * (W - A)
    for _ in range(H - B):
        res.append("".join(L2))
    print(*res, sep="\n") resolve
import sys

sys.setrecursionlimit(10 ** 7)
input = sys.stdin.readline
f_inf = float('inf')
mod = 10 ** 9 + 7


def resolve():
    H, W, A, B = map(int, input().split())
        
    res = []
    L1 = ["1"] * A + ["0"] * (W - A)
    for _ in range(B):
        res.append("".join(L1))
    L2 = ["0"] * A + ["1"] * (W - A)
    for _ in range(H - B):
        res.append("".join(L2))
    print(*res, sep="\n")


if __name__ == '__main__':
    resolve()
