#include <bits/stdc++.h>
using namespace std;
long long int mod = -1000000000000000000;
long long int maxi(long long int a, long long int b) {
  if (a < b) {
    return b;
  }
  return a;
}
int main() {
  int n, m;
  cin >> n >> m;
  vector<long long int> a(n), b(m);
  for (int i = 0; i < (n + m); i++) {
    if (i < n) {
      cin >> a[i];
    } else {
      cin >> b[i - n];
    }
  }
  long long int maxx1 = mod, maxx2 = mod;
  for (int i = 0; i < n; i++) {
    long long int t = mod;
    for (int j = 0; j < m; j++) {
      t = maxi(t, a[i] * b[j]);
    }
    if (t > maxx1) {
      maxx2 = maxx1;
      maxx1 = t;
    } else {
      if (maxx2 < t) {
        maxx2 = t;
      }
    }
  }
  cout << maxx2 << endl;
}
