/*#include <bits/stdc++.h>

using namespace std;
const int SIZE=200000+50;
int arr[SIZE];
int s[SIZE],res[SIZE];

int main()
{
    int n,k;
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++){
        scanf("%d",&arr[i]);
    }
    int top=0;
    for(int i=n;i>=1;i--){
        while(top && arr[s[top]]>arr[i])top--;
        res[i]=s[top];
        s[++top]=i;
    }
    int cnt=0,flag=1;
    for(int i=1;i<=n-k+1;i++){
        if(res[i]==0 && flag==0)continue;
        if(res[i]-i<=k-1 && res[i]!=0){
            cnt++;printf("i=%d\n",i);
        }
        else{
            if(flag){
                cnt++;flag=0;printf("i=%d\n",i);
            }
        }
        printf("res[%d]=%d flag=%d\n",i,res[i],flag);
    }
    printf("%d",cnt);
    return 0;
}*/
#include <bits/stdc++.h>
using namespace std;
int ans[1010][1010];
int main()
{
    int H,W;
    scanf("%d%d",&H,&W);
    int a,b;
    scanf("%d%d",&a,&b);
    for(int i = 1;i <= H;i++){
        if(i <= b*2){
            if(i%2 == 1){
                for(int j = 1;j <= a;j++){
                    ans[i][j] = 1;
                }
                for(int j = a+1;j <= W;j++){
                    ans[i][j] = 0;
                }
            }
            else{
                for(int j = 1;j <= a;j++){
                    ans[i][j] = 0;
                }
                for(int j = a+1;j <= W;j++){
                    ans[i][j] = 1;
                }
            }
        }
        else{
            for(int j = 1;j <= a;j++){
                ans[i][j] = 1;
            }
            for(int j = a+1;j <= W;j++){
                ans[i][j] = 0;
            }
        }
    }
    for(int i = 1;i <= H;i++){
        for(int j = 1;j <= W;j++){
            printf("%d",ans[i][j]);
        }
        printf("\n");
    }
    return 0;
}
