import math,itertools,fractions,heapq,collections,bisect,sys,queue,copy

sys.setrecursionlimit(10**7)
inf=10**20
mod=10**9+7
dd=[(-1,0),(0,1),(1,0),(0,-1)]
ddn=[(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]

def LI(): return [int(x) for x in sys.stdin.readline().split()]
def I(): return int(sys.stdin.readline())
def LS(): return sys.stdin.readline().split()
def S(): return input()

def main():
  h,w,a,b=LI()
  field=[[0]*w for _ in range(h)]

  for i in range(b):
    for j in range(a):
      field[i][j]=1

  for i in range(b,h):
    for j in range(a,w):
      field[i][j]=1

  for x in field:
    print(''.join([str(y) for y in x]))

main()
# print(main()) import math,itertools,fractions,heapq,collections,bisect,sys,queue,copy math itertools fractions heapq collections bisect sys queue copy sys.setrecursionlimit(10**7) sys.setrecursionlimit sys setrecursionlimit 10**7 10 7 inf=10**20 inf 10**20 10 20 mod=10**9+7 mod 10**9+7 10**9 10 9 7 dd=[(-1,0),(0,1),(1,0),(0,-1)] dd [(-1,0),(0,1),(1,0),(0,-1)] (-1,0) -1 0 (0,1) 0 1 (1,0) 1 0 (0,-1) 0 -1 ddn=[(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)] ddn [(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)] (-1,0) -1 0 (-1,1) -1 1 (0,1) 0 1 (1,1) 1 1 (1,0) 1 0 (1,-1) 1 -1 (0,-1) 0 -1 (-1,-1) -1 -1 int(x) for x in sys.stdin.readline().split() for x in sys.stdin.readline().split() x sys.stdin.readline().split() sys.stdin.readline().split sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline split for x in sys.stdin.readline().split() int(x) int x def LI(): return [int(x) for x in sys.stdin.readline().split()] LI def I(): return int(sys.stdin.readline()) I def LS(): return sys.stdin.readline().split() LS def S(): return input() S def main():
  h,w,a,b=LI()
  field=[[0]*w for _ in range(h)]

  for i in range(b):
    for j in range(a):
      field[i][j]=1

  for i in range(b,h):
    for j in range(a,w):
      field[i][j]=1

  for x in field:
    print(''.join([str(y) for y in x])) main h,w,a,b=LI() h LI() LI w a b [0]*w for _ in range(h) for _ in range(h) _ range(h) range h for _ in range(h) [0]*w [0] 0 w field=[[0]*w for _ in range(h)] field [[0]*w for _ in range(h)] for i in range(b):
    for j in range(a):
      field[i][j]=1

   i range(b) range b for j in range(a):
      field[i][j]=1

   j range(a) range a field[i][j]=1 field[i][j] [i] field i j 1 for i in range(b,h):
    for j in range(a,w):
      field[i][j]=1

   i range(b,h) range b h for j in range(a,w):
      field[i][j]=1

   j range(a,w) range a w field[i][j]=1 field[i][j] [i] field i j 1 for x in field:
    print(''.join([str(y) for y in x])) x field str(y) for y in x for y in x y x for y in x str(y) str y print(''.join([str(y) for y in x])) print ''.join([str(y) for y in x]) ''.join '' join [str(y) for y in x] main() main inf=10**20 10**20 inf def S(): return input() def S(): return input() S def main():
  h,w,a,b=LI()
  field=[[0]*w for _ in range(h)]

  for i in range(b):
    for j in range(a):
      field[i][j]=1

  for i in range(b,h):
    for j in range(a,w):
      field[i][j]=1

  for x in field:
    print(''.join([str(y) for y in x])) def main():
  h,w,a,b=LI()
  field=[[0]*w for _ in range(h)]

  for i in range(b):
    for j in range(a):
      field[i][j]=1

  for i in range(b,h):
    for j in range(a,w):
      field[i][j]=1

  for x in field:
    print(''.join([str(y) for y in x])) main def I(): return int(sys.stdin.readline()) def I(): return int(sys.stdin.readline()) I mod=10**9+7 10**9+7 mod ddn=[(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)] [(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)] ddn dd=[(-1,0),(0,1),(1,0),(0,-1)] [(-1,0),(0,1),(1,0),(0,-1)] dd def LS(): return sys.stdin.readline().split() def LS(): return sys.stdin.readline().split() LS def LI(): return [int(x) for x in sys.stdin.readline().split()] def LI(): return [int(x) for x in sys.stdin.readline().split()] LI
import math,itertools,fractions,heapq,collections,bisect,sys,queue,copy

sys.setrecursionlimit(10**7)
inf=10**20
mod=10**9+7
dd=[(-1,0),(0,1),(1,0),(0,-1)]
ddn=[(-1,0),(-1,1),(0,1),(1,1),(1,0),(1,-1),(0,-1),(-1,-1)]

def LI(): return [int(x) for x in sys.stdin.readline().split()]
def I(): return int(sys.stdin.readline())
def LS(): return sys.stdin.readline().split()
def S(): return input()

def main():
  h,w,a,b=LI()
  field=[[0]*w for _ in range(h)]

  for i in range(b):
    for j in range(a):
      field[i][j]=1

  for i in range(b,h):
    for j in range(a,w):
      field[i][j]=1

  for x in field:
    print(''.join([str(y) for y in x]))

main()
# print(main())
