from itertools import chain

def solve(H,W,A,B):

    return '\n'.join(chain(('1'*A+'0'*(W-A) for _ in range(B)), ('0'*A+'1'*(W-A) for _ in range(H-B))))




if __name__ == '__main__':
    H,W,A,B = map(int,input().split())
    print(solve(H,W,A,B)) from itertools import chain def solve(H,W,A,B):

    return '\n'.join(chain(('1'*A+'0'*(W-A) for _ in range(B)), ('0'*A+'1'*(W-A) for _ in range(H-B)))) solve '1'*A+'0'*(W-A) for _ in range(B) for _ in range(B) _ range(B) range B for _ in range(B) '1'*A+'0'*(W-A) '1'*A '1' A '0'*(W-A) '0' W-A W A return '\n'.join(chain(('1'*A+'0'*(W-A) for _ in range(B)), ('0'*A+'1'*(W-A) for _ in range(H-B)))) '\n'.join(chain(('1'*A+'0'*(W-A) for _ in range(B)), ('0'*A+'1'*(W-A) for _ in range(H-B)))) '\n'.join '\n' join chain(('1'*A+'0'*(W-A) for _ in range(B)), ('0'*A+'1'*(W-A) for _ in range(H-B))) chain ('1'*A+'0'*(W-A) for _ in range(B)) ('0'*A+'1'*(W-A) for _ in range(H-B)) H H W W A A B B if __name__ == '__main__':
    H,W,A,B = map(int,input().split())
    print(solve(H,W,A,B)) __name__ == '__main__' __name__ '__main__' H,W,A,B = map(int,input().split()) H map(int,input().split()) map int input().split() ().split () input split W A B print(solve(H,W,A,B)) print solve(H,W,A,B) solve H W A B H,W,A,B = map(int,input().split()) map(int,input().split()) H W,A,B = map(int,input().split()) map(int,input().split()) W def solve(H,W,A,B):

    return '\n'.join(chain(('1'*A+'0'*(W-A) for _ in range(B)), ('0'*A+'1'*(W-A) for _ in range(H-B)))) def solve(H,W,A,B):

    return '\n'.join(chain(('1'*A+'0'*(W-A) for _ in range(B)), ('0'*A+'1'*(W-A) for _ in range(H-B)))) solve B = map(int,input().split()) map(int,input().split()) B A,B = map(int,input().split()) map(int,input().split()) A
from itertools import chain

def solve(H,W,A,B):

    return '\n'.join(chain(('1'*A+'0'*(W-A) for _ in range(B)), ('0'*A+'1'*(W-A) for _ in range(H-B))))




if __name__ == '__main__':
    H,W,A,B = map(int,input().split())
    print(solve(H,W,A,B))