import sys

readline = sys.stdin.readline
MOD = 10 ** 9 + 7
INF = float('INF')
sys.setrecursionlimit(10 ** 5)


def main():
    h, w, a, b = map(int, readline().split())
    grid = [["0"] * w for _ in range(h)]

    for row in range(h):
        for col in range(w):
            c = 0
            if row < b:
                c ^= 1
            if col < a:
                c ^= 1
            grid[row][col] = str(c)

    for i in range(h):
        print("".join(grid[i]))


if __name__ == '__main__':
    main() import sys sys readline = sys.stdin.readline readline sys.stdin.readline sys.stdin sys stdin readline MOD = 10 ** 9 + 7 MOD 10 ** 9 + 7 10 ** 9 10 9 7 INF = float('INF') INF float('INF') float 'INF' sys.setrecursionlimit(10 ** 5) sys.setrecursionlimit sys setrecursionlimit 10 ** 5 10 5 def main():
    h, w, a, b = map(int, readline().split())
    grid = [["0"] * w for _ in range(h)]

    for row in range(h):
        for col in range(w):
            c = 0
            if row < b:
                c ^= 1
            if col < a:
                c ^= 1
            grid[row][col] = str(c)

    for i in range(h):
        print("".join(grid[i])) main h, w, a, b = map(int, readline().split()) h map(int, readline().split()) map int readline().split() ().split () readline split 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 grid = [["0"] * w for _ in range(h)] grid [["0"] * w for _ in range(h)] for row in range(h):
        for col in range(w):
            c = 0
            if row < b:
                c ^= 1
            if col < a:
                c ^= 1
            grid[row][col] = str(c)

     row range(h) range h for col in range(w):
            c = 0
            if row < b:
                c ^= 1
            if col < a:
                c ^= 1
            grid[row][col] = str(c)

     col range(w) range w c = 0 c 0 if row < b:
                c ^= 1
             row < b row b c ^= 1 c 1 if col < a:
                c ^= 1
             col < a col a c ^= 1 c 1 grid[row][col] = str(c) grid[row][col] [row] grid row col str(c) str c 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 if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main INF = float('INF') float('INF') INF def main():
    h, w, a, b = map(int, readline().split())
    grid = [["0"] * w for _ in range(h)]

    for row in range(h):
        for col in range(w):
            c = 0
            if row < b:
                c ^= 1
            if col < a:
                c ^= 1
            grid[row][col] = str(c)

    for i in range(h):
        print("".join(grid[i])) def main():
    h, w, a, b = map(int, readline().split())
    grid = [["0"] * w for _ in range(h)]

    for row in range(h):
        for col in range(w):
            c = 0
            if row < b:
                c ^= 1
            if col < a:
                c ^= 1
            grid[row][col] = str(c)

    for i in range(h):
        print("".join(grid[i])) main readline = sys.stdin.readline sys.stdin.readline readline MOD = 10 ** 9 + 7 10 ** 9 + 7 MOD
import sys

readline = sys.stdin.readline
MOD = 10 ** 9 + 7
INF = float('INF')
sys.setrecursionlimit(10 ** 5)


def main():
    h, w, a, b = map(int, readline().split())
    grid = [["0"] * w for _ in range(h)]

    for row in range(h):
        for col in range(w):
            c = 0
            if row < b:
                c ^= 1
            if col < a:
                c ^= 1
            grid[row][col] = str(c)

    for i in range(h):
        print("".join(grid[i]))


if __name__ == '__main__':
    main()
