#include <bits/stdc++.h>
using namespace std;
int main(void) {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int rep = 1;
  while (rep--) {
    int n, m, l;
    cin >> n >> m >> l;
    vector<int> r(n), g(m), b(l);
    for (int i = 0; i < n; i++) {
      cin >> r[i];
    }
    for (int i = 0; i < m; i++) {
      cin >> g[i];
    }
    for (int i = 0; i < l; i++) {
      cin >> b[i];
    }
    sort(r.rbegin(), r.rend());
    sort(g.rbegin(), g.rend());
    sort(b.rbegin(), b.rend());
    int ans = 0;
    vector<vector<vector<int>>> dp(
        n + 1, vector<vector<int>>(m + 1, vector<int>(l + 1)));
    for (int i = 0; i <= n; i++) {
      for (int j = 0; j <= m; j++) {
        for (int k = 0; k <= l; k++) {
          if (i > 0 && j > 0)
            dp[i][j][k] =
                max(dp[i][j][k], dp[i - 1][j - 1][k] + r[i - 1] * g[j - 1]);
          if (i > 0 && k > 0)
            dp[i][j][k] =
                max(dp[i][j][k], dp[i - 1][j][k - 1] + r[i - 1] * b[k - 1]);
          if (j > 0 && k > 0)
            dp[i][j][k] =
                max(dp[i][j][k], dp[i][j - 1][k - 1] + g[j - 1] * b[k - 1]);
          ans = max(ans, dp[i][j][k]);
        }
      }
    }
    printf("%d\n", ans);
  }
  return 0;
}
