program cut;
var
n,m,i,j,p1,p2:longint;
ans:int64;
sz1,sz2:array[0..2000]of longint;
begin
assign(input,'cut.in');
assign(output,'cut.out');
reset(input);
rewrite(output);
readln(n,m);
for i:=1 to n-1 do
read(sz1[i]);
readln;
for i:=1 to m-1 do
read(sz2[i]);
for i:=1 to n-2 do
for j:=i+1 to n-1 do
if sz1[i]<sz1[j] then begin
sz1[0]:=sz1[i];
sz1[i]:=sz1[j];
sz1[j]:=sz1[0];
end;
for i:=1 to n-2 do
for j:=i+1 to n-1 do
if sz2[i]<sz2[j] then begin
sz2[0]:=sz2[i];
sz2[i]:=sz2[j];
sz2[j]:=sz2[0];
end;
p1:=1;
p2:=1;
ans:=0;
while (p1<n)or(p2<m) do
begin
if sz1[p1]>sz2[p2] then begin
ans:=ans+sz1[p1]*p2;
p1:=p1+1;
end
else begin
ans:=ans+sz2[p2]*p1;
p2:=p2+1;
end;
end;
writeln(ans);
close(input);
close(output);
end.