import sys, math
from functools import lru_cache
from collections import defaultdict
from decimal import Decimal
sys.setrecursionlimit(10**9)
MOD = 10**9+7

def input():
    return sys.stdin.readline()[:-1]

def mi():
    return map(int, input().split())

def ii():
    return int(input())

def i2(n):
    tmp = [list(mi()) for i in range(n)]
    return [list(i) for i in zip(*tmp)]

def main():
    H, W, A, B = mi()
    ans = [[None]*W for i in range(H)]
    for i in range(B):
        for j in range(A):
            ans[i][j] = '0'
        for j in range(A, W):
            ans[i][j] = '1'
    for i in range(B, H):
        for j in range(A):
            ans[i][j] = '1'
        for j in range(A, W):
            ans[i][j] = '0'

    print(*[''.join(ans[i]) for i in range(H)], sep='\n')

if __name__ == '__main__':
    main() import sys, math sys math from functools import lru_cache from collections import defaultdict from decimal import Decimal sys.setrecursionlimit(10**9) sys.setrecursionlimit sys setrecursionlimit 10**9 10 9 MOD = 10**9+7 MOD 10**9+7 10**9 10 9 7 def input():
    return sys.stdin.readline()[:-1] input return sys.stdin.readline()[:-1] sys.stdin.readline()[:-1] sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline :-1 -1 def mi():
    return map(int, input().split()) mi return map(int, input().split()) map(int, input().split()) map int input().split() ().split () input split def ii():
    return int(input()) ii return int(input()) int(input()) int input() input def i2(n):
    tmp = [list(mi()) for i in range(n)]
    return [list(i) for i in zip(*tmp)] i2 list(mi()) for i in range(n) for i in range(n) i range(n) range n for i in range(n) list(mi()) list mi() mi tmp = [list(mi()) for i in range(n)] tmp [list(mi()) for i in range(n)] list(i) for i in zip(*tmp) for i in zip(*tmp) i zip(*tmp) zip *tmp tmp for i in zip(*tmp) list(i) list i return [list(i) for i in zip(*tmp)] [list(i) for i in zip(*tmp)] n n def main():
    H, W, A, B = mi()
    ans = [[None]*W for i in range(H)]
    for i in range(B):
        for j in range(A):
            ans[i][j] = '0'
        for j in range(A, W):
            ans[i][j] = '1'
    for i in range(B, H):
        for j in range(A):
            ans[i][j] = '1'
        for j in range(A, W):
            ans[i][j] = '0'

    print(*[''.join(ans[i]) for i in range(H)], sep='\n') main H, W, A, B = mi() H mi() mi W A B [None]*W for i in range(H) for i in range(H) i range(H) range H for i in range(H) [None]*W [None] None W ans = [[None]*W for i in range(H)] ans [[None]*W for i in range(H)] for i in range(B):
        for j in range(A):
            ans[i][j] = '0'
        for j in range(A, W):
            ans[i][j] = '1'
     i range(B) range B for j in range(A):
            ans[i][j] = '0'
         j range(A) range A ans[i][j] = '0' ans[i][j] [i] ans i j '0' for j in range(A, W):
            ans[i][j] = '1'
     j range(A, W) range A W ans[i][j] = '1' ans[i][j] [i] ans i j '1' for i in range(B, H):
        for j in range(A):
            ans[i][j] = '1'
        for j in range(A, W):
            ans[i][j] = '0'

     i range(B, H) range B H for j in range(A):
            ans[i][j] = '1'
         j range(A) range A ans[i][j] = '1' ans[i][j] [i] ans i j '1' for j in range(A, W):
            ans[i][j] = '0'

     j range(A, W) range A W ans[i][j] = '0' ans[i][j] [i] ans i j '0' ''.join(ans[i]) for i in range(H) for i in range(H) i range(H) range H for i in range(H) ''.join(ans[i]) ''.join '' join ans[i] ans i print(*[''.join(ans[i]) for i in range(H)], sep='\n') print *[''.join(ans[i]) for i in range(H)] [''.join(ans[i]) for i in range(H)] sep='\n' sep '\n' if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main def i2(n):
    tmp = [list(mi()) for i in range(n)]
    return [list(i) for i in zip(*tmp)] def i2(n):
    tmp = [list(mi()) for i in range(n)]
    return [list(i) for i in zip(*tmp)] i2 def ii():
    return int(input()) def ii():
    return int(input()) ii MOD = 10**9+7 10**9+7 MOD def input():
    return sys.stdin.readline()[:-1] def input():
    return sys.stdin.readline()[:-1] input def mi():
    return map(int, input().split()) def mi():
    return map(int, input().split()) mi def main():
    H, W, A, B = mi()
    ans = [[None]*W for i in range(H)]
    for i in range(B):
        for j in range(A):
            ans[i][j] = '0'
        for j in range(A, W):
            ans[i][j] = '1'
    for i in range(B, H):
        for j in range(A):
            ans[i][j] = '1'
        for j in range(A, W):
            ans[i][j] = '0'

    print(*[''.join(ans[i]) for i in range(H)], sep='\n') def main():
    H, W, A, B = mi()
    ans = [[None]*W for i in range(H)]
    for i in range(B):
        for j in range(A):
            ans[i][j] = '0'
        for j in range(A, W):
            ans[i][j] = '1'
    for i in range(B, H):
        for j in range(A):
            ans[i][j] = '1'
        for j in range(A, W):
            ans[i][j] = '0'

    print(*[''.join(ans[i]) for i in range(H)], sep='\n') main
import sys, math
from functools import lru_cache
from collections import defaultdict
from decimal import Decimal
sys.setrecursionlimit(10**9)
MOD = 10**9+7

def input():
    return sys.stdin.readline()[:-1]

def mi():
    return map(int, input().split())

def ii():
    return int(input())

def i2(n):
    tmp = [list(mi()) for i in range(n)]
    return [list(i) for i in zip(*tmp)]

def main():
    H, W, A, B = mi()
    ans = [[None]*W for i in range(H)]
    for i in range(B):
        for j in range(A):
            ans[i][j] = '0'
        for j in range(A, W):
            ans[i][j] = '1'
    for i in range(B, H):
        for j in range(A):
            ans[i][j] = '1'
        for j in range(A, W):
            ans[i][j] = '0'

    print(*[''.join(ans[i]) for i in range(H)], sep='\n')

if __name__ == '__main__':
    main()
