#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a),_b=(b); i<=_b; ++i)
#define fi first
#define se second
#define el "\n"
#define pb push_back
#define sz(a) (int)(a).size()
#define FILL(a,x) memset(a,x,sizeof(a))
using namespace std;
typedef long long ll;
ll floor_div_pos(ll x, ll y) {
if (x >= 0) return x / y;
return - ((-x + y - 1) / y);
}
ll count_le(const vector<ll> &a, const vector<ll> &b, ll x) {
int n = sz(a), m = sz(b);
ll res = 0;
FOR(i,0,n-1) {
ll ai = a[i];
if (ai == 0) {
if (x >= 0) res += (ll)m;
} else if (ai > 0) {
ll bound = floor_div_pos(x, ai);
int idx = upper_bound(b.begin(), b.end(), bound) - b.begin();
res += (ll)idx;
} else {
ll bound = -floor_div_pos(x, -ai); // ceil(x/ai) with ai < 0
int idx = lower_bound(b.begin(), b.end(), bound) - b.begin();
res += (ll)(m - idx);
}
}
return res;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
ll k;
if (!(cin >> k)) return 0;
int n, m;
cin >> n;
vector<ll> a(n);
FOR(i,0,n-1) cin >> a[i];
cin >> m;
vector<ll> b(m);
FOR(i,0,m-1) cin >> b[i];
if (n > m) {
swap(n, m);
a.swap(b);
}
sort(b.begin(), b.end());
ll minA = a[0], maxA = a[0];
FOR(i,1,n-1) {
if (a[i] < minA) minA = a[i];
if (a[i] > maxA) maxA = a[i];
}
ll minB = b[0], maxB = b[0];
FOR(i,1,m-1) {
if (b[i] < minB) minB = b[i];
if (b[i] > maxB) maxB = b[i];
}
ll mn = min(min(minA * minB, minA * maxB), min(maxA * minB, maxA * maxB));
ll mx = max(max(minA * minB, minA * maxB), max(maxA * minB, maxA * maxB));
ll lo = mn, hi = mx;
while (lo < hi) {
ll mid = lo + (hi - lo) / 2;
if (count_le(a, b, mid) >= k) hi = mid;
else lo = mid + 1;
}
cout << lo;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRk9SKGksYSxiKSBmb3IoaW50IGk9KGEpLF9iPShiKTsgaTw9X2I7ICsraSkKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGVsICJcbiIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBzeihhKSAoaW50KShhKS5zaXplKCkKI2RlZmluZSBGSUxMKGEseCkgbWVtc2V0KGEseCxzaXplb2YoYSkpCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCmxsIGZsb29yX2Rpdl9wb3MobGwgeCwgbGwgeSkgewppZiAoeCA+PSAwKSByZXR1cm4geCAvIHk7CnJldHVybiAtICgoLXggKyB5IC0gMSkgLyB5KTsKfQoKbGwgY291bnRfbGUoY29uc3QgdmVjdG9yPGxsPiAmYSwgY29uc3QgdmVjdG9yPGxsPiAmYiwgbGwgeCkgewppbnQgbiA9IHN6KGEpLCBtID0gc3ooYik7CmxsIHJlcyA9IDA7CkZPUihpLDAsbi0xKSB7CmxsIGFpID0gYVtpXTsKaWYgKGFpID09IDApIHsKaWYgKHggPj0gMCkgcmVzICs9IChsbCltOwp9IGVsc2UgaWYgKGFpID4gMCkgewpsbCBib3VuZCA9IGZsb29yX2Rpdl9wb3MoeCwgYWkpOwppbnQgaWR4ID0gdXBwZXJfYm91bmQoYi5iZWdpbigpLCBiLmVuZCgpLCBib3VuZCkgLSBiLmJlZ2luKCk7CnJlcyArPSAobGwpaWR4Owp9IGVsc2UgewpsbCBib3VuZCA9IC1mbG9vcl9kaXZfcG9zKHgsIC1haSk7IC8vIGNlaWwoeC9haSkgd2l0aCBhaSA8IDAKaW50IGlkeCA9IGxvd2VyX2JvdW5kKGIuYmVnaW4oKSwgYi5lbmQoKSwgYm91bmQpIC0gYi5iZWdpbigpOwpyZXMgKz0gKGxsKShtIC0gaWR4KTsKfQp9CnJldHVybiByZXM7Cn0KCmludCBtYWluKCkgewppb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CmNpbi50aWUobnVsbHB0cik7CmNvdXQudGllKG51bGxwdHIpOwoKbGwgazsKaWYgKCEoY2luID4+IGspKSByZXR1cm4gMDsKCmludCBuLCBtOwpjaW4gPj4gbjsKdmVjdG9yPGxsPiBhKG4pOwpGT1IoaSwwLG4tMSkgY2luID4+IGFbaV07CmNpbiA+PiBtOwp2ZWN0b3I8bGw+IGIobSk7CkZPUihpLDAsbS0xKSBjaW4gPj4gYltpXTsKCmlmIChuID4gbSkgewogICAgc3dhcChuLCBtKTsKICAgIGEuc3dhcChiKTsKfQoKc29ydChiLmJlZ2luKCksIGIuZW5kKCkpOwoKbGwgbWluQSA9IGFbMF0sIG1heEEgPSBhWzBdOwpGT1IoaSwxLG4tMSkgewogICAgaWYgKGFbaV0gPCBtaW5BKSBtaW5BID0gYVtpXTsKICAgIGlmIChhW2ldID4gbWF4QSkgbWF4QSA9IGFbaV07Cn0KbGwgbWluQiA9IGJbMF0sIG1heEIgPSBiWzBdOwpGT1IoaSwxLG0tMSkgewogICAgaWYgKGJbaV0gPCBtaW5CKSBtaW5CID0gYltpXTsKICAgIGlmIChiW2ldID4gbWF4QikgbWF4QiA9IGJbaV07Cn0KCmxsIG1uID0gbWluKG1pbihtaW5BICogbWluQiwgbWluQSAqIG1heEIpLCBtaW4obWF4QSAqIG1pbkIsIG1heEEgKiBtYXhCKSk7CmxsIG14ID0gbWF4KG1heChtaW5BICogbWluQiwgbWluQSAqIG1heEIpLCBtYXgobWF4QSAqIG1pbkIsIG1heEEgKiBtYXhCKSk7CgpsbCBsbyA9IG1uLCBoaSA9IG14Owp3aGlsZSAobG8gPCBoaSkgewogICAgbGwgbWlkID0gbG8gKyAoaGkgLSBsbykgLyAyOwogICAgaWYgKGNvdW50X2xlKGEsIGIsIG1pZCkgPj0gaykgaGkgPSBtaWQ7CiAgICBlbHNlIGxvID0gbWlkICsgMTsKfQoKY291dCA8PCBsbzsKcmV0dXJuIDA7Cgp9Cg==