#pragma GCC optimize ("unroll-loops")
#pragma GCC optimize ("O3", "omit-frame-pointer","inline")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,fma,popcnt,abm,mmx,avx,avx2")
#include <bits/stdc++.h>
using namespace std;
/***********************************************/
/* Dear online judge:
* I've read the problem, and tried to solve it.
* Even if you don't accept my solution, you should respect my effort.
* I hope my code compiles and gets accepted.
* ___ __ _______ _______
* |\ \|\ \ |\ ___ \ |\ ___ \
* \ \ \/ /|_\ \ __/| \ \ __/|
* \ \ ___ \\ \ \_|/__\ \ \_|/__
* \ \ \\ \ \\ \ \_|\ \\ \ \_|\ \
* \ \__\\ \__\\ \_______\\ \_______\
* \|__| \|__| \|_______| \|_______|
*/
//const long long mod = 1000000007;
const long long mod = 998244353;
mt19937 rng((int) chrono::steady_clock::now().time_since_epoch().count());
const int mxN = 100010;
int main(int argc, char *argv[]) {
freopen("lcm.in","r",stdin);
#ifdef ONLINE_JUDGE
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
#endif
srand(time(NULL));
cout << fixed << setprecision(9);
int t = 1;
// int Case = 1;
cin >> t;
// t = 10000;
while (t--) {
int n;
long long l, r;
cin >> n >> l >> r;
vector<long long> a(n);
for (int i = 0; i < n; i++)
cin >> a[i];
map<long long, int> lcm;
int cnt_2 = 0;
for (int i = 0; i < n; i++) {
cnt_2 = 0;
while(a[i]%2 == 0) {
a[i] /= 2;
cnt_2++;
}
if(cnt_2) lcm[2] = max(lcm[2], cnt_2);
for (long long j = 3; j * j <= a[i]; j += 2)
if (a[i] % j == 0) {
int cnt = 0;
while (a[i] % j == 0)
a[i] /= j, cnt++;
lcm[j] = max(lcm[j], cnt);
}
if (a[i] > 1) {
lcm[a[i]] = max(lcm[a[i]], 1);
a[i] = 1;
}
}
long long res = r, mul = 1;
for (long long x = r; x >= l; x--) {
long long cur = x;
for (auto &p : lcm)
if (cur % p.first == 0) {
for (int k = 0; k < p.second && cur % p.first == 0; k++)
cur /= p.first;
}
if (cur > mul) mul = cur, res = x;
if (cur == x) break;
}
cout << res << '\n';
}
return 0;
}
/* stuff you should look for:
* overflow, array bounds
* special cases (n=1?)
* clear arrays
* DON'T STICK TO ONE APPROACH
* solve simpler or different variation
* Solve DP using graph ( \_(-_-)_/ )
*/
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJ1bnJvbGwtbG9vcHMiKQojcHJhZ21hIEdDQyBvcHRpbWl6ZSAoIk8zIiwgIm9taXQtZnJhbWUtcG9pbnRlciIsImlubGluZSIpCiNwcmFnbWEgR0NDIHRhcmdldCgic3NlLHNzZTIsc3NlMyxzc3NlMyxzc2U0LHNzZTQuMixmbWEscG9wY250LGFibSxtbXgsYXZ4LGF2eDIiKQoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qIERlYXIgb25saW5lIGp1ZGdlOgogKiBJJ3ZlIHJlYWQgdGhlIHByb2JsZW0sIGFuZCB0cmllZCB0byBzb2x2ZSBpdC4KICogRXZlbiBpZiB5b3UgZG9uJ3QgYWNjZXB0IG15IHNvbHV0aW9uLCB5b3Ugc2hvdWxkIHJlc3BlY3QgbXkgZWZmb3J0LgogKiBJIGhvcGUgbXkgY29kZSBjb21waWxlcyBhbmQgZ2V0cyBhY2NlcHRlZC4KICogIF9fXyAgX18gICAgIF9fX19fX18gICAgX19fX19fXwogKiB8XCAgXHxcICBcICB8XCAgX19fIFwgIHxcICBfX18gXAogKiBcIFwgIFwvICAvfF9cIFwgICBfXy98IFwgXCAgIF9fL3wKICogIFwgXCAgIF9fXyAgXFwgXCAgXF98L19fXCBcICBcX3wvX18KICogICBcIFwgIFxcIFwgIFxcIFwgIFxffFwgXFwgXCAgXF98XCBcCiAqICAgIFwgXF9fXFwgXF9fXFwgXF9fX19fX19cXCBcX19fX19fX1wKICogICAgIFx8X198IFx8X198IFx8X19fX19fX3wgXHxfX19fX19ffAogKi8KLy9jb25zdCBsb25nIGxvbmcgbW9kID0gMTAwMDAwMDAwNzsKY29uc3QgbG9uZyBsb25nIG1vZCA9IDk5ODI0NDM1MzsKbXQxOTkzNyBybmcoKGludCkgY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKCmNvbnN0IGludCBteE4gPSAxMDAwMTA7CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7CiAgICBmcmVvcGVuKCJsY20uaW4iLCJyIixzdGRpbik7CiNpZmRlZiBPTkxJTkVfSlVER0UKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShudWxscHRyKTsKLy9mcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKLy9mcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKCglzcmFuZCh0aW1lKE5VTEwpKTsKCWNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDkpOwoKCWludCB0ID0gMTsKLy8JaW50IENhc2UgPSAxOwoJY2luID4+IHQ7Ci8vCXQgPSAxMDAwMDsKCXdoaWxlICh0LS0pIHsKCQlpbnQgbjsKCQlsb25nIGxvbmcgbCwgcjsKCQljaW4gPj4gbiA+PiBsID4+IHI7CgkJdmVjdG9yPGxvbmcgbG9uZz4gYShuKTsKCQlmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQkJY2luID4+IGFbaV07CgkJbWFwPGxvbmcgbG9uZywgaW50PiBsY207CgkJaW50IGNudF8yID0gMDsKCQlmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCSAgICBjbnRfMiA9IDA7CgkJICAgIHdoaWxlKGFbaV0lMiA9PSAwKSB7CgkJICAgICAgICBhW2ldIC89IDI7CgkJICAgICAgICBjbnRfMisrOwoJCSAgICB9CgkJICAgIGlmKGNudF8yKSBsY21bMl0gPSBtYXgobGNtWzJdLCBjbnRfMik7CgkJCWZvciAobG9uZyBsb25nIGogPSAzOyBqICogaiA8PSBhW2ldOyBqICs9IDIpCgkJCQlpZiAoYVtpXSAlIGogPT0gMCkgewoJCQkJCWludCBjbnQgPSAwOwoJCQkJCXdoaWxlIChhW2ldICUgaiA9PSAwKQoJCQkJCQlhW2ldIC89IGosIGNudCsrOwoJCQkJCWxjbVtqXSA9IG1heChsY21bal0sIGNudCk7CgkJCQl9CgkJCWlmIChhW2ldID4gMSkgewoJCQkJbGNtW2FbaV1dID0gbWF4KGxjbVthW2ldXSwgMSk7CgkJCQlhW2ldID0gMTsKCQkJfQoJCX0KCQlsb25nIGxvbmcgcmVzID0gciwgbXVsID0gMTsKCQlmb3IgKGxvbmcgbG9uZyB4ID0gcjsgeCA+PSBsOyB4LS0pIHsKCQkJbG9uZyBsb25nIGN1ciA9IHg7CgkJCWZvciAoYXV0byAmcCA6IGxjbSkKCQkJCWlmIChjdXIgJSBwLmZpcnN0ID09IDApIHsKCQkJCQlmb3IgKGludCBrID0gMDsgayA8IHAuc2Vjb25kICYmIGN1ciAlIHAuZmlyc3QgPT0gMDsgaysrKQoJCQkJCQljdXIgLz0gcC5maXJzdDsKCQkJCX0KCQkJaWYgKGN1ciA+IG11bCkgbXVsID0gY3VyLCByZXMgPSB4OwoJCQlpZiAoY3VyID09IHgpIGJyZWFrOwoJCX0KCQljb3V0IDw8IHJlcyA8PCAnXG4nOwoJfQoJcmV0dXJuIDA7Cn0KCi8qIHN0dWZmIHlvdSBzaG91bGQgbG9vayBmb3I6CiAqIG92ZXJmbG93LCBhcnJheSBib3VuZHMKICogc3BlY2lhbCBjYXNlcyAobj0xPykKICogY2xlYXIgYXJyYXlzCiAqIERPTidUIFNUSUNLIFRPIE9ORSBBUFBST0FDSAogKiBzb2x2ZSBzaW1wbGVyIG9yIGRpZmZlcmVudCB2YXJpYXRpb24KICogU29sdmUgRFAgdXNpbmcgZ3JhcGggKCBcXygtXy0pXy8gKQogKi8K