#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));
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++){
for(int q=0;q<=j-1;q++){
dp[i][j]=max(dp[i][j],A[i]*B[j]+dp[p][q]);
}
}
result=max(result,dp[i][j]);
}
}
return result;
}
int main(){
int n,m;
cin>>n>>m;
vector<int>A(n);
vector<int>B(m);
for(int i=0;i<n;i++){
cin>>A[i];
}
for(int j=0;j<m;j++){
cin>>B[j];
}
int result=solve_dp(A,B);
cout<<"Maximum score possible : "<<result<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBzb2x2ZV9kcCh2ZWN0b3I8aW50PiZBLHZlY3RvcjxpbnQ+JkIpewogICAgaW50IG49QS5zaXplKCk7CiAgICBpbnQgbT1CLnNpemUoKTsKCiAgICB2ZWN0b3I8dmVjdG9yPGludD4+ZHAobix2ZWN0b3I8aW50PihtLDApKTsKICAgIGludCByZXN1bHQ9SU5UX01JTjsKCiAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICBmb3IoaW50IGo9MDtqPG07aisrKXsKICAgICAgICAgICAgZHBbaV1bal09QVtpXSpCW2pdOwoKICAgICAgICAgICAgZm9yKGludCBwPTA7cDw9aS0xO3ArKyl7CiAgICAgICAgICAgICAgICBmb3IoaW50IHE9MDtxPD1qLTE7cSsrKXsKICAgICAgICAgICAgICAgICAgICBkcFtpXVtqXT1tYXgoZHBbaV1bal0sQVtpXSpCW2pdK2RwW3BdW3FdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmVzdWx0PW1heChyZXN1bHQsZHBbaV1bal0pOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gcmVzdWx0Owp9CgppbnQgbWFpbigpewogICAgaW50IG4sbTsKICAgIGNpbj4+bj4+bTsKICAgIHZlY3RvcjxpbnQ+QShuKTsKICAgIHZlY3RvcjxpbnQ+QihtKTsKCiAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICBjaW4+PkFbaV07CiAgICB9CiAgICBmb3IoaW50IGo9MDtqPG07aisrKXsKICAgICAgICBjaW4+PkJbal07CiAgICB9CgogICAgaW50IHJlc3VsdD1zb2x2ZV9kcChBLEIpOwogICAgY291dDw8Ik1heGltdW0gc2NvcmUgcG9zc2libGUgOiAiPDxyZXN1bHQ8PGVuZGw7CiAgICByZXR1cm4gMDsKfQ==