#include <bits/stdc++.h>
using namespace std;

int main(){
	int h, w, a, b;
	cin >> h >> w >> a >> b;
	for (int i=0; i<h; i++){
		for (int j=0; j<w; j++){
			if ((i<b && j<a) || (i>=b && j>=a)) cout << "1";
			else cout << "0";
		}
		cout << "\n";
	}
}
#include <bits/stdc++.h>
#define ll long long
#define MODV 1000000007
#define INFLL LLONG_MAX // 9223372036854775807
#define EPS 1e-9
#define rep(i, n) for(ll i=0, i##_len=(ll)(n); i<i##_len; i++)
#define repf(i, n) for(ll i=1, i##_len=(ll)(n+1); i<i##_len; i++)
#define all(v) v.begin(), v.end()
#define endl "\n"
#define vi vector<ll>
#define vvi vector<vector<ll>>
#define Yes() cout << "Yes" << endl
#define YES() cout << "YES" << endl
#define No() cout << "No" << endl
#define NO() cout << "NO" << endl
#define Init() std::ios::sync_with_stdio(false); std::cin.tie(0); std::cout<<fixed<<setprecision(15);
template<class T>bool chmax(T &a, const T &b){ if(a<b){ a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b){ if(b<a){ a=b; return 1; } return 0; }
using namespace std;

int main(){
    Init();
    ll h, w, a, b;
    cin >> h >> w >> a >> b;
    string zo = string(a, '0') + string(w-a, '1');
    string oz = string(a, '1') + string(w-a, '0');
    rep(i, h) cout << (i<b ? zo : oz) << endl;
}