function z = f(r, c)
z = hilb(max([r c]));
z = z(1:r, 1:c);
n = 1:r * c;
for i = 1:r + c - 1
m = z == 1 / i;
w = sum(m(:));
z(m) = flip(n(1:w), 2 + mod(i, 2));
n(1:w) = [];
end
end
f(3, 3), f(4, 2), f(3, 5), f(1, 8)
ZnVuY3Rpb24geiA9IGYociwgYykKICAgIHogPSBoaWxiKG1heChbciBjXSkpOwogICAgeiA9IHooMTpyLCAxOmMpOwogICAgbiA9IDE6ciAqIGM7CiAgICBmb3IgaSA9IDE6ciArIGMgLSAxCiAgICAgICAgbSA9IHogPT0gMSAvIGk7CiAgICAgICAgdyA9IHN1bShtKDopKTsKICAgICAgICB6KG0pID0gZmxpcChuKDE6dyksIDIgKyBtb2QoaSwgMikpOwogICAgICAgIG4oMTp3KSA9IFtdOwogICAgZW5kCmVuZApmKDMsIDMpLCBmKDQsIDIpLCBmKDMsIDUpLCBmKDEsIDgp