# -*- coding: utf-8 -*-

import sys

def input(): return sys.stdin.readline().strip()
def list2d(a, b, c): return [[c] * b for i in range(a)]
def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)]
def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)]
def ceil(x, y=1): return int(-(-x // y))
def INT(): return int(input())
def MAP(): return map(int, input().split())
def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)]
def Yes(): print('Yes')
def No(): print('No')
def YES(): print('YES')
def NO(): print('NO')
sys.setrecursionlimit(10 ** 9)
INF = 10 ** 18
MOD = 10 ** 9 + 7

H, W, A, B = MAP()

grid = list2d(H, W, '0')
for i in range(H):
    for j in range(W):
        if (i < B and j < A) or (i >= B and j >= A):
            grid[i][j] = '1'

for i in range(H):
    print(''.join(grid[i])) import sys sys def input(): return sys.stdin.readline().strip() input [c] * b for i in range(a) for i in range(a) i range(a) range a for i in range(a) [c] * b [c] c b def list2d(a, b, c): return [[c] * b for i in range(a)] list2d a a b b c c [[d] * c for j in range(b)] for i in range(a) for i in range(a) i range(a) range a for i in range(a) [[d] * c for j in range(b)] def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)] list3d a a b b c c d d [[[e] * d for j in range(c)] for j in range(b)] for i in range(a) for i in range(a) i range(a) range a for i in range(a) [[[e] * d for j in range(c)] for j in range(b)] def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)] list4d a a b b c c d d e e def ceil(x, y=1): return int(-(-x // y)) ceil x x y=1 y 1 def INT(): return int(input()) INT def MAP(): return map(int, input().split()) MAP INT() for i in range(N) for i in range(N) i range(N) range N for i in range(N) INT() INT def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)] LIST N=None N None def Yes(): print('Yes') Yes def No(): print('No') No def YES(): print('YES') YES def NO(): print('NO') NO sys.setrecursionlimit(10 ** 9) sys.setrecursionlimit sys setrecursionlimit 10 ** 9 10 9 INF = 10 ** 18 INF 10 ** 18 10 18 MOD = 10 ** 9 + 7 MOD 10 ** 9 + 7 10 ** 9 10 9 7 H, W, A, B = MAP() H MAP() MAP W A B grid = list2d(H, W, '0') grid list2d(H, W, '0') list2d H W '0' for i in range(H):
    for j in range(W):
        if (i < B and j < A) or (i >= B and j >= A):
            grid[i][j] = '1' i range(H) range H for j in range(W):
        if (i < B and j < A) or (i >= B and j >= A):
            grid[i][j] = '1' j range(W) range W if (i < B and j < A) or (i >= B and j >= A):
            grid[i][j] = '1' (i < B and j < A) or (i >= B and j >= A) i < B and j < A i < B i B j < A j A i >= B and j >= A i >= B i B j >= A j A grid[i][j] = '1' grid[i][j] [i] grid i j '1' for i in range(H):
    print(''.join(grid[i])) i range(H) range H print(''.join(grid[i])) print ''.join(grid[i]) ''.join '' join grid[i] grid i def No(): print('No') def No(): print('No') No def INT(): return int(input()) def INT(): return int(input()) INT def NO(): print('NO') def NO(): print('NO') NO INF = 10 ** 18 10 ** 18 INF H, W, A, B = MAP() MAP() H def list2d(a, b, c): return [[c] * b for i in range(a)] def list2d(a, b, c): return [[c] * b for i in range(a)] list2d def Yes(): print('Yes') def Yes(): print('Yes') Yes W, A, B = MAP() MAP() W def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)] def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)] list4d def ceil(x, y=1): return int(-(-x // y)) def ceil(x, y=1): return int(-(-x // y)) ceil B = MAP() MAP() B def YES(): print('YES') def YES(): print('YES') YES def input(): return sys.stdin.readline().strip() def input(): return sys.stdin.readline().strip() input A, B = MAP() MAP() A grid = list2d(H, W, '0') list2d(H, W, '0') grid def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)] def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)] LIST def MAP(): return map(int, input().split()) def MAP(): return map(int, input().split()) MAP def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)] def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)] list3d MOD = 10 ** 9 + 7 10 ** 9 + 7 MOD
# -*- coding: utf-8 -*-

import sys

def input(): return sys.stdin.readline().strip()
def list2d(a, b, c): return [[c] * b for i in range(a)]
def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)]
def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)]
def ceil(x, y=1): return int(-(-x // y))
def INT(): return int(input())
def MAP(): return map(int, input().split())
def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)]
def Yes(): print('Yes')
def No(): print('No')
def YES(): print('YES')
def NO(): print('NO')
sys.setrecursionlimit(10 ** 9)
INF = 10 ** 18
MOD = 10 ** 9 + 7

H, W, A, B = MAP()

grid = list2d(H, W, '0')
for i in range(H):
    for j in range(W):
        if (i < B and j < A) or (i >= B and j >= A):
            grid[i][j] = '1'

for i in range(H):
    print(''.join(grid[i]))
