//矩形分割:
#include<iostream>
#include<stdio.h>
#include <algorithm>
using namespace std;
bool cmp(int a,int b);
int main(void)
{
//输入方形:
int a,b;
cin>>a>>b;
int row[2020];
int col[2020];
//输入每条边:
for(int i=0;i<a-1;i++)
{
cin>>row[i];
}
for(int j=0;j<b-1;j++)
{
cin>>col[j];
}
//处理每条边:
//1:排序将边从小到大排序:
sort(row ,row+a-1 ,cmp);
sort(col,col+b-1, cmp);
//寻找最大的那条边切割
long long x=0,y=0;//两个下边
long long r=1,c=1; //r是行数 c是列 数
long long price,sum=0;
for(int i =0;i<a+b-2;i++)
{
if(row[x]>col[y])
{
sum = sum+row[x]*c;
r++;
x++;
}
else
{
sum = sum+col[y]*r;
c++;
y++;
}
}
cout<<sum;
return 0;
}
bool cmp(int a,int b)
{
if(a>b) return true;
else return false;
}