#!/usr/bin/env python3
import sys


def solve(H: int, W: int, A: int, B: int):
    answer = [["0"]*W for _ in range(H)]
    for i in range(H):
        for j in range(W):
            if i < B:
                if j < A:
                    answer[i][j] = "0"
                else:
                    answer[i][j] = "1"
            else:
                if j < A:
                    answer[i][j] = "1"
                else:
                    answer[i][j] = "0"

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


def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    H = int(next(tokens))  # type: int
    W = int(next(tokens))  # type: int
    A = int(next(tokens))  # type: int
    B = int(next(tokens))  # type: int
    solve(H, W, A, B)

if __name__ == '__main__':
    main() import sys sys def solve(H: int, W: int, A: int, B: int):
    answer = [["0"]*W for _ in range(H)]
    for i in range(H):
        for j in range(W):
            if i < B:
                if j < A:
                    answer[i][j] = "0"
                else:
                    answer[i][j] = "1"
            else:
                if j < A:
                    answer[i][j] = "1"
                else:
                    answer[i][j] = "0"

    for i in range(H):
        print(''.join(answer[i]))                
    return solve ["0"]*W for _ in range(H) for _ in range(H) _ range(H) range H for _ in range(H) ["0"]*W ["0"] "0" W answer = [["0"]*W for _ in range(H)] answer [["0"]*W for _ in range(H)] for i in range(H):
        for j in range(W):
            if i < B:
                if j < A:
                    answer[i][j] = "0"
                else:
                    answer[i][j] = "1"
            else:
                if j < A:
                    answer[i][j] = "1"
                else:
                    answer[i][j] = "0"

     i range(H) range H for j in range(W):
            if i < B:
                if j < A:
                    answer[i][j] = "0"
                else:
                    answer[i][j] = "1"
            else:
                if j < A:
                    answer[i][j] = "1"
                else:
                    answer[i][j] = "0"

     j range(W) range W if i < B:
                if j < A:
                    answer[i][j] = "0"
                else:
                    answer[i][j] = "1"
            else:
                if j < A:
                    answer[i][j] = "1"
                else:
                    answer[i][j] = "0"

     i < B i B if j < A:
                    answer[i][j] = "0"
                else:
                    answer[i][j] = "1"
             j < A j A answer[i][j] = "0" answer[i][j] [i] answer i j "0" answer[i][j] = "1" answer[i][j] [i] answer i j "1" if j < A:
                    answer[i][j] = "1"
                else:
                    answer[i][j] = "0"

     j < A j A answer[i][j] = "1" answer[i][j] [i] answer i j "1" answer[i][j] = "0" answer[i][j] [i] answer i j "0" for i in range(H):
        print(''.join(answer[i]))                
     i range(H) range H print(''.join(answer[i])) print ''.join(answer[i]) ''.join '' join answer[i] answer i return H: int H W: int W A: int A B: int B def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    H = int(next(tokens))  # type: int
    W = int(next(tokens))  # type: int
    A = int(next(tokens))  # type: int
    B = int(next(tokens))  # type: int
    solve(H, W, A, B) main def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
     iterate_tokens for line in sys.stdin:
            for word in line.split():
                yield word
     line sys.stdin sys stdin for word in line.split():
                yield word
     word line.split() line.split line split yield word word tokens = iterate_tokens() tokens iterate_tokens() iterate_tokens H = int(next(tokens)) H int(next(tokens)) int next(tokens) next tokens W = int(next(tokens)) W int(next(tokens)) int next(tokens) next tokens A = int(next(tokens)) A int(next(tokens)) int next(tokens) next tokens B = int(next(tokens)) B int(next(tokens)) int next(tokens) next tokens solve(H, W, A, B) solve H W A B if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main def solve(H: int, W: int, A: int, B: int):
    answer = [["0"]*W for _ in range(H)]
    for i in range(H):
        for j in range(W):
            if i < B:
                if j < A:
                    answer[i][j] = "0"
                else:
                    answer[i][j] = "1"
            else:
                if j < A:
                    answer[i][j] = "1"
                else:
                    answer[i][j] = "0"

    for i in range(H):
        print(''.join(answer[i]))                
    return def solve(H: int, W: int, A: int, B: int):
    answer = [["0"]*W for _ in range(H)]
    for i in range(H):
        for j in range(W):
            if i < B:
                if j < A:
                    answer[i][j] = "0"
                else:
                    answer[i][j] = "1"
            else:
                if j < A:
                    answer[i][j] = "1"
                else:
                    answer[i][j] = "0"

    for i in range(H):
        print(''.join(answer[i]))                
    return solve def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    H = int(next(tokens))  # type: int
    W = int(next(tokens))  # type: int
    A = int(next(tokens))  # type: int
    B = int(next(tokens))  # type: int
    solve(H, W, A, B) def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    H = int(next(tokens))  # type: int
    W = int(next(tokens))  # type: int
    A = int(next(tokens))  # type: int
    B = int(next(tokens))  # type: int
    solve(H, W, A, B) main
#!/usr/bin/env python3
import sys


def solve(H: int, W: int, A: int, B: int):
    answer = [["0"]*W for _ in range(H)]
    for i in range(H):
        for j in range(W):
            if i < B:
                if j < A:
                    answer[i][j] = "0"
                else:
                    answer[i][j] = "1"
            else:
                if j < A:
                    answer[i][j] = "1"
                else:
                    answer[i][j] = "0"

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


def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    H = int(next(tokens))  # type: int
    W = int(next(tokens))  # type: int
    A = int(next(tokens))  # type: int
    B = int(next(tokens))  # type: int
    solve(H, W, A, B)

if __name__ == '__main__':
    main()
