from collections import Counter,defaultdict,deque
from heapq import heappop,heappush,heapify
import sys,bisect,math,itertools,fractions
sys.setrecursionlimit(10**8)
mod = 10**9+7
INF = float('inf')
def inp(): return int(sys.stdin.readline())
def inpl(): return list(map(int, sys.stdin.readline().split()))

h,w,a,b = inpl()
for i in range(h):
    res = []
    tmp = 0 if i < b else 1
    for j in range(w):
        if j < a:
            res.append(str(tmp))
        else:
            res.append(str(tmp^1))
    print(''.join(res)) from collections import Counter,defaultdict,deque from heapq import heappop,heappush,heapify import sys,bisect,math,itertools,fractions sys bisect math itertools fractions sys.setrecursionlimit(10**8) sys.setrecursionlimit sys setrecursionlimit 10**8 10 8 mod = 10**9+7 mod 10**9+7 10**9 10 9 7 INF = float('inf') INF float('inf') float 'inf' def inp(): return int(sys.stdin.readline()) inp def inpl(): return list(map(int, sys.stdin.readline().split())) inpl h,w,a,b = inpl() h inpl() inpl w a b for i in range(h):
    res = []
    tmp = 0 if i < b else 1
    for j in range(w):
        if j < a:
            res.append(str(tmp))
        else:
            res.append(str(tmp^1))
    print(''.join(res)) i range(h) range h res = [] res [] tmp = 0 if i < b else 1 tmp 0 if i < b else 1 i < b i b 0 1 for j in range(w):
        if j < a:
            res.append(str(tmp))
        else:
            res.append(str(tmp^1))
     j range(w) range w if j < a:
            res.append(str(tmp))
        else:
            res.append(str(tmp^1))
     j < a j a res.append(str(tmp)) res.append res append str(tmp) str tmp res.append(str(tmp^1)) res.append res append str(tmp^1) str tmp^1 tmp 1 print(''.join(res)) print ''.join(res) ''.join '' join res b = inpl() inpl() b w,a,b = inpl() inpl() w tmp = 0 if i < b else 1 0 if i < b else 1 tmp INF = float('inf') float('inf') INF def inp(): return int(sys.stdin.readline()) def inp(): return int(sys.stdin.readline()) inp h,w,a,b = inpl() inpl() h mod = 10**9+7 10**9+7 mod def inpl(): return list(map(int, sys.stdin.readline().split())) def inpl(): return list(map(int, sys.stdin.readline().split())) inpl a,b = inpl() inpl() a res = [] [] res
from collections import Counter,defaultdict,deque
from heapq import heappop,heappush,heapify
import sys,bisect,math,itertools,fractions
sys.setrecursionlimit(10**8)
mod = 10**9+7
INF = float('inf')
def inp(): return int(sys.stdin.readline())
def inpl(): return list(map(int, sys.stdin.readline().split()))

h,w,a,b = inpl()
for i in range(h):
    res = []
    tmp = 0 if i < b else 1
    for j in range(w):
        if j < a:
            res.append(str(tmp))
        else:
            res.append(str(tmp^1))
    print(''.join(res))