{
TASK:BOOKS
LANG:Pascal
}
{$R-}
const
 maxn = 201;
 maxk = 101;
 maxx = 2147483647;
var
  book : array[0..maxn] of longint;
  cash : array[0..maxn] of longint;
  b    : array[0..maxn,0..maxn] of int64;
  a    : array[0..maxk,0..maxn] of int64;
  n,k,i,j,min,p : longint;
Procedure Vhod;
begin
   readln(n,k);
   for i:=1 to n-1 do
   begin
       read(book[i]);
   end;
   inc(i);
   readln(book[n]);
   for i:=1 to n-1 do
   begin
      read(cash[i]);
   end;
   inc(i);
   readln(cash[n]);
   if k>n then k:=n;
end;
Procedure Init;
begin
   for i:=1 to n do
   begin
      for j:=i to n do
      begin
         b[i,j]:=b[i,j-1]+book[j]*cash[j-i+1];
      end;
   end;
end;
Procedure Main;
begin
   for i:=1 to n do
   a[1,i]:=b[1,i];
   for i:=2 to k do
   begin
      for j:=i to n do
      begin
        min:=maxx;
        for p:=j downto i do
        if min>a[i-1,p-1]+b[p,j] then min:=a[i-1,p-1]+b[p,j];
        if min>a[i-1,j] then min:=a[i-1,j];
        a[i,j]:=min;
      end;
   end;
   writeln(a[k,n]);
end;
begin
   Vhod;
   Init;
   Main;
end.
