#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 5;

int n, m, a, b;
int grid[N][N];

void solve() {
    cin >> n >> m >> a >> b;
    memset(grid, 0, sizeof(grid));
    for(int i = 1; i <= b; i++) {
        for(int j = 1; j <= a; j++) {
            grid[i][j] = 1;
        }
    }
    for(int i = b + 1; i <= n; i++) {
        for(int j = a + 1; j <= m; j++) {
            grid[i][j] = 1;
        }
    }
    for(int i = 1; i <= n; i++) {
        for(int j = 1; j <= m; j++) {
            cout << grid[i][j];
        }
        cout << "\n";
    }
}

int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    solve();
}
#include <bits/stdc++.h>
using namespace std;

int main() {
	// cin.tie(0);
	// ios::sync_with_stdio(false);

	/*

	A
	001111B
	001111
	110000
	110000
	110000

	*/
	int H, W, A, B;
	scanf("%d %d %d %d", &H, &W, &A, &B);

	for (int i = 0; i < H; i++) {
		for (int j = 0; j < W; j++) {
			if ((i < B) ^ (j < A)) {
				cout << 1;
			} else {
				cout << 0;
			}
		}
		cout << "\n";
	}
	return 0;
}