import std.stdio, std.algorithm, std.conv, std.array, std.string, std.math, std.typecons, std.numeric;

void main()
{
    auto l = readln.split.to!(int[]);
    auto H = l[0];
    auto W = l[1];
    auto A = l[2];
    auto B = l[3];

    char[][] R;
    R.length = H;

    if (A == 0) {
        foreach (i; 0..H) {
            foreach (_; 0..W) {
                R[i] ~= (i < B ? '1' : '0');
            }
        }
    } else if (B == 0) {
        foreach (h; 0..H) {
            foreach (i; 0..W) {
                R[h] ~= (i < A ? '1' : '0');
            }
        }
    } else if (W%A == 0 && H%B == 0 && W/A == H/B) {
        foreach (h; 0..H) {
            foreach (w; 0..W) {
                if (w/A == h/B) {
                    R[h] ~= '1';
                } else {
                    R[h] ~= '0';
                }
            }
        }
    } else {
        writeln("No");
        return;
    }
    
    foreach (r; R) writeln(r);
}