{
TASK:books
LANG:pascal
}
const maxn=220;
var a,b : array[1..maxn,1..maxn]of longint;
    x,y : array[1..maxn]of longint;
    mm,i,r,j,s,k,l,n,m,p,q : longint;

Function min(tt,yy : longint) : longint;
begin
  if tt>yy then min:=yy
  else min:=tt;
end;

Procedure readin;
begin
  readln(n,m);
  for i:=1 to n do read(x[i]);
  readln;
  for i:=1 to n do read(y[i]);
end;

Begin
  readin;
  for i:=1 to n do b[i,i]:=x[i]*y[1];
  for i:=1 to n do
    for j:=i+1 to n do begin
      b[i,j]:=b[i,j-1]+x[j]*(y[j-i+1]);
    end;




  a[1,1]:=x[1]*y[1];

  for i:=2 to n do begin
    a[1,i]:=a[1,i-1]+x[i]*y[i];
  end;

  for i:=1 to m do begin
    a[i,1]:=x[1]*y[1];
  end;



  for i:=2 to m do
    for j:=2 to n do begin
      if j<=i then begin
        a[i,j]:=a[i,j-1]+x[j]*y[1];
      end

      else begin
        mm:=9999999;
        for p:=1 to j-1 do begin
          s:=a[i-1,p];
          s:=s+b[p+1,j];
          mm:=min(mm,s);
          mm:=min(mm,a[i-1,j]);
        end;
        a[i,j]:=mm;
      end;
    end;
  writeln(a[m,n]);
end.


end.
