#include <bits/stdc++.h>
using namespace std;
long long a[55], b[55], sol2, sol1;
int n, m;
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= m; i++) cin >> b[i];
  sort(a + 1, a + n + 1);
  sort(b + 1, b + m + 1);
  sol1 = -LLONG_MAX;
  sol2 = sol1;
  if (a[n - 1] <= 0) sol1 = max(sol1, a[n - 1] * b[1]);
  if (a[1] <= 0) sol1 = max(sol1, a[1] * b[1]);
  if (a[n - 1] >= 0) sol1 = max(sol1, a[n - 1] * b[m]);
  if (a[1] >= 0) sol1 = max(sol1, a[1] * b[m]);
  if (a[n] <= 0) sol2 = max(sol2, a[n] * b[1]);
  if (a[2] <= 0) sol2 = max(sol2, a[2] * b[1]);
  if (a[n] >= 0) sol2 = max(sol2, a[n] * b[m]);
  if (a[2] >= 0) sol2 = max(sol2, a[2] * b[m]);
  cout << min(sol1, sol2) << '\n';
  return 0;
}
