#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int solve_dp(vector<int>&A,vector<int>&B){
int n=A.size();
int m=B.size();
vector<vector<int>>dp(n,vector<int>(m,0));
vector<vector<int>>dp2(n,vector<int>(m,0));
int result=INT_MIN;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
dp[i][j]=A[i]*B[j];
for(int p=0;p<=i-1;p++){
dp2[i][j]=max(dp2[i][j],dp[p][j]);
}
for(int q=0;q<=j-1;q++){
dp[i][j]=max(dp[i][j],A[i]*B[j]+dp2[i][q]);
}
result=max(result,dp[i][j]);
}
}
return result;
}
int main(){
int n;
cin>>n;
int m;
cin>>m;
vector<int>A(n);
vector<int>B(m);
for(int i=0;i<n;i++){
cin>>A[i];
}
for(int i=0;i<m;i++){
cin>>B[i];
}
int ans=solve_dp(A,B);
cout<<"Maximum score: "<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBzb2x2ZV9kcCh2ZWN0b3I8aW50PiZBLHZlY3RvcjxpbnQ+JkIpewogICAgaW50IG49QS5zaXplKCk7CiAgICBpbnQgbT1CLnNpemUoKTsKCiAgICB2ZWN0b3I8dmVjdG9yPGludD4+ZHAobix2ZWN0b3I8aW50PihtLDApKTsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj5kcDIobix2ZWN0b3I8aW50PihtLDApKTsKCiAgICBpbnQgcmVzdWx0PUlOVF9NSU47CgogICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgZm9yKGludCBqPTA7ajxtO2orKyl7CiAgICAgICAgICAgIGRwW2ldW2pdPUFbaV0qQltqXTsKICAgICAgICAgICAgCgogICAgICAgICAgICBmb3IoaW50IHA9MDtwPD1pLTE7cCsrKXsKICAgICAgICAgICAgICAgIGRwMltpXVtqXT1tYXgoZHAyW2ldW2pdLGRwW3BdW2pdKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yKGludCBxPTA7cTw9ai0xO3ErKyl7CiAgICAgICAgICAgICAgICBkcFtpXVtqXT1tYXgoZHBbaV1bal0sQVtpXSpCW2pdK2RwMltpXVtxXSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJlc3VsdD1tYXgocmVzdWx0LGRwW2ldW2pdKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKXsKICAgIGludCBuOwogICAgY2luPj5uOwogICAgaW50IG07CiAgICBjaW4+Pm07CgogICAgdmVjdG9yPGludD5BKG4pOwogICAgdmVjdG9yPGludD5CKG0pOwoKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIGNpbj4+QVtpXTsKICAgIH0KICAgIGZvcihpbnQgaT0wO2k8bTtpKyspewogICAgICAgIGNpbj4+QltpXTsKICAgIH0KCiAgICBpbnQgYW5zPXNvbHZlX2RwKEEsQik7CiAgICBjb3V0PDwiTWF4aW11bSBzY29yZTogIjw8YW5zPDxlbmRsOwogICAgcmV0dXJuIDA7Cn0=