#include <bits/stdc++.h>
using namespace std;
int len1, len2;
long long num1[55], num2[55];
long long cal(int ind) {
  long long ret = -1e18;
  for (int i = 0; i < len1; i++) {
    if (i == ind) continue;
    for (int j = 0; j < len2; j++) {
      ret = max(ret, num1[i] * num2[j]);
    }
  }
  return ret;
}
int main() {
  scanf("%d%d", &len1, &len2);
  for (int i = 0; i < len1; i++) {
    scanf("%lld", num1 + i);
  }
  for (int i = 0; i < len2; i++) {
    scanf("%lld", num2 + i);
  }
  long long maxm = 1e18;
  for (int i = 0; i < len1; i++) {
    maxm = min(maxm, cal(i));
  }
  printf("%lld\n", maxm);
  return 0;
}
