type vector=array[1..1000]of longint;
var f,g:text;
a:array[1..1000,1..1000]of longint;
sl,sc,pl,pc:array[1..1000]of longint;
m,n,r,c,i,j,aux,st:longint;
procedure interclasare(var x,y:vector;st,mij,dr:longint);
var i,j,k,q:longint;
b,c:vector;
begin
for i:=st to dr do
begin
b[i]:=x[i];
c[i]:=y[i];
end;
i:=st;
k:=st-1;
j:=mij+1;
while (i<=mij)and(j<=dr) do
if b[i]<b[j] then begin
inc(k);
x[k]:=b[i];
y[k]:=c[i];
inc(i);
end
else begin
inc(k);
x[k]:=b[j];
y[k]:=c[j];
inc(j);
end;
for q:=i to mij do
begin
inc(k);
x[k]:=b[q];
y[k]:=c[q];
end;
for q:=j to dr do
begin
inc(k);
x[k]:=b[q];
y[k]:=c[q];
end;
end;
procedure sort(var x,y:vector;st,dr:longint);
var mij:longint;
begin
if st<>dr then begin
mij:=(st+dr)div 2;
sort(x,y,st,mij);
sort(x,y,mij+1,dr);
interclasare(x,y,st,mij,dr);
end;
end;
begin
assign(f,'elimin.in');reset(f);
assign(g,'elimin.out');rewrite(g);
readln(f,m,n,r,c);
for i:=1 to m do
for j:=1 to n do
read(f,a[i,j]);
st:=0;
for i:=1 to m do
for j:=1 to n do
st:=st+a[i,j];
for i:=1 to m do
begin
sl[i]:=0;
for j:=1 to n do
sl[i]:=sl[i]+a[i,j];
end;
for j:=1 to n do
begin
sc[j]:=0;
for i:=1 to m do
sc[j]:=sc[j]+a[i,j];
end;
for i:=1 to m do
pl[i]:=i;
for i:=1 to n do
pc[i]:=i;
sort(sl,pl,1,m);
sort(sc,pc,1,n);
for i:=1 to r do
begin
st:=st-sl[i];
for j:=1 to n do
sc[pc[j]]:=sc[pc[j]]-a[pl[i],j];
end;
sort(sc,pc,1,n);
for i:=1 to c do
st:=st-sc[i];
writeln(g,st);
close(f);
close(g);
end.