#include<iostream>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
int T;
cin>>T;
while( T-- )
{
int n,m;
vector<int> v1,v2;
cin>>n>>m;
for( int i=0;i<n;i++)
{
int temp;
cin>>temp;
v1.push_back(temp);
}
for( int i=0;i<m;i++)
{
int temp;
cin>>temp;
v2.push_back(temp);
}
sort(v1.begin(),v1.end());
sort(v2.begin(),v2.end());
reverse(v1.begin(),v1.end());
reverse(v2.begin(),v2.end());
long long count=0;
int mn = min(m,n);
for(int i=0;i<mn;i++)
count += (v1[i] * v2[i]);
cout<<count<<endl;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8Y21hdGg+CiNpbmNsdWRlPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICAgaW50IFQ7CiAgICBjaW4+PlQ7CgogICAgd2hpbGUoIFQtLSApCiAgICB7CiAgICAgICBpbnQgbixtOwogICAgICAgdmVjdG9yPGludD4gdjEsdjI7CiAgICAgICBjaW4+Pm4+Pm07CgogICAgICAgZm9yKCBpbnQgaT0wO2k8bjtpKyspCiAgICAgICB7CiAgICAgICAgICAgaW50IHRlbXA7CiAgICAgICAgICAgY2luPj50ZW1wOwogICAgICAgICAgIHYxLnB1c2hfYmFjayh0ZW1wKTsKICAgICAgIH0KCiAgICAgICBmb3IoIGludCBpPTA7aTxtO2krKykKICAgICAgIHsKICAgICAgICAgICBpbnQgdGVtcDsKICAgICAgICAgICBjaW4+PnRlbXA7CiAgICAgICAgICAgdjIucHVzaF9iYWNrKHRlbXApOwogICAgICAgfQoKICAgICAgIHNvcnQodjEuYmVnaW4oKSx2MS5lbmQoKSk7CiAgICAgICBzb3J0KHYyLmJlZ2luKCksdjIuZW5kKCkpOwoKICAgICAgIHJldmVyc2UodjEuYmVnaW4oKSx2MS5lbmQoKSk7CiAgICAgICByZXZlcnNlKHYyLmJlZ2luKCksdjIuZW5kKCkpOwoKICAgICAgIGxvbmcgbG9uZyBjb3VudD0wOwogICAgICAgaW50IG1uID0gbWluKG0sbik7CiAgICAgICBmb3IoaW50IGk9MDtpPG1uO2krKykKICAgICAgICAgICAgY291bnQgKz0gKHYxW2ldICogdjJbaV0pOwogICAgICAgIGNvdXQ8PGNvdW50PDxlbmRsOwogICAgfQoKCiAgICByZXR1cm4gMDsKfQ==