{ real
task:books
lang:pascal
}
var i,j,n,k,l,m,p:longint;
    r,s,t:comp;
    c,d:array[0..200] of longint;
    a:array[1..2,0..200,0..200] of comp;
function min(a,b:comp):comp;
begin
min:=trunc((a+b-abs(a-b))/2);
end;
begin
readln(n,k);
for n:=1 to n do read(c[n]);
for n:=1 to n do read(d[n]);
for j:=1 to n do for l:=1 to n do
    begin
    a[1,j,l]:=200000000;
    a[1,j,l]:=a[1,j,l]*100000000;
    end;
for i:=1 to n do
begin
s:=d[i];
t:=c[i];
r:=s*t;
a[1,i,i]:=a[1,i-1,i-1]+r;
end;
p:=1;
for i:=2 to k do
begin
p:=3-p;
for j:=1 to n do for l:=1 to n do if l=1 then
    begin
    a[p,j,l]:=200000000;
    a[p,j,l]:=a[p,j,l]*100000000;
    for m:=1 to n do a[p,j,l]:=min(a[3-p,j-1,m],a[p,j,l]);
    s:=d[1];
    t:=c[j];
    r:=s*t;
    a[p,j,l]:=a[p,j,l]+r;
    end else a[p,j,l]:=a[p,j-1,l-1]+c[j]*d[l];
end;
r:=200000000;
r:=r*100000000;
for l:=1 to n do r:=min(r,a[p,n,l]);
writeln(r:0:0);
end.
