#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, m, min1 = LLONG_MIN, min = LLONG_MIN, x, index1, index, y, c;
  cin >> n >> m;
  long long *a = new long long[n];
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  long long *b = new long long[m];
  for (int j = 0; j < m; j++) {
    cin >> b[j];
    c = b[j];
    for (int k = 0; k < n; k++) {
      x = c * a[k];
      if (x > min1) {
        min1 = x;
        index = j;
        index1 = k;
      }
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (i != index1) {
        y = a[i] * b[j];
        if (y > min) {
          min = y;
        }
      } else {
        break;
      }
    }
  }
  cout << min;
  return 0;
}
