#include <bits/stdc++.h> // NeOWami
using namespace std;
#define ft first
#define sc second
#define int long long
const int N = 2e5 + 20;
int n, ps[N], k;
int a[N];
void solve() {
cin >> n >> k;
for (int i = 1; i <= n; i++) cin >> a[i];
fill(ps, ps + n + 5, 0);
for (int i = 1; i <= n; i++) {
int tmp = -1;
int x = 0;
if (a[i] % 3 == 0) {
tmp = a[i] / 3;
}
x = max((int)1, a[i] / 4);
while(x > 1) {
int y = (a[i] - 2 * x) / x, z = a[i] % x;
// cerr << "FUC " << a[i] << " " << x << " " << y << " " << z << "\n";
if (y >= 1 && x + z <= y * x) break;
x--;
}
if (tmp != -1) ps[tmp]++, ps[tmp + 1]--;
ps[1]++;
ps[x + 1]--;
// ps[a[i]]++;
// ps[a[i] + 1]--;
// cerr << 1 << " -> " << x << "| ";
for (int j = 1; j * j <= a[i]; j++) {
if (a[i] % j == 0) {
if (j > x && j != tmp) {
ps[j]++;
ps[j + 1]--;
// cerr << j << " ";
}
if (a[i] / j != j && a[i] / j > x && a[i] / j != tmp) {
ps[a[i] / j]++;
ps[(a[i] / j) + 1]--;
// cerr << a[i] / j << " ";
}
}
}
// cerr << '\n';
}
// cerr << "\n";
int ans = 1;
for (int i = 1; i <= n; i++) {
ps[i] = ps[i - 1] + ps[i];
if (ps[i] + k >= n) ans = i;
// cerr << ps[i] << " ";
}
// cerr << "\n-------\n";
cout << ans << "\n";
}
signed main() {
cin.tie(NULL)->sync_with_stdio(false);
if(ifstream("Input.inp")) {
freopen("Input.inp", "r", stdin);
freopen("Output.out", "w", stdout);
}
int tt; cin >> tt;
while(tt--) {
solve();
}
return 0;
}
/*
15 1 7 10 17 14 17 12 7 4 10 4 15 2 6 2 14 5
1 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 0
4 3 8
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IC8vIE5lT1dhbWkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgZnQgZmlyc3QKI2RlZmluZSBzYyBzZWNvbmQKI2RlZmluZSBpbnQgbG9uZyBsb25nCmNvbnN0IGludCBOID0gMmU1ICsgMjA7CmludCBuLCBwc1tOXSwgazsKaW50IGFbTl07CnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbiA+PiBrOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsKICAgIGZpbGwocHMsIHBzICsgbiArIDUsIDApOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGludCB0bXAgPSAtMTsKICAgICAgICBpbnQgeCA9IDA7CiAgICAgICAgaWYgKGFbaV0gJSAzID09IDApIHsKICAgICAgICAgICAgdG1wID0gYVtpXSAvIDM7CiAgICAgICAgfQogICAgICAgIHggPSBtYXgoKGludCkxLCBhW2ldIC8gNCk7CiAgICAgICAgd2hpbGUoeCA+IDEpIHsKICAgICAgICAgICAgaW50IHkgPSAoYVtpXSAtIDIgKiB4KSAvIHgsIHogPSBhW2ldICUgeDsKICAgICAgICAgICAgLy8gY2VyciA8PCAiRlVDICIgPDwgYVtpXSA8PCAiICIgPDwgeCA8PCAiICIgPDwgeSA8PCAiICIgPDwgeiA8PCAiXG4iOwogICAgICAgICAgICBpZiAoeSA+PSAxICYmIHggKyB6IDw9IHkgKiB4KSBicmVhazsKICAgICAgICAgICAgeC0tOwogICAgICAgIH0KICAgICAgICBpZiAodG1wICE9IC0xKSBwc1t0bXBdKyssIHBzW3RtcCArIDFdLS07CiAgICAgICAgcHNbMV0rKzsKICAgICAgICBwc1t4ICsgMV0tLTsKICAgICAgICAvLyAgICAgICAgIHBzW2FbaV1dKys7CiAgICAgICAgLy8gcHNbYVtpXSArIDFdLS07CiAgICAgICAgLy8gY2VyciA8PCAxIDw8ICIgLT4gIiA8PCB4IDw8ICJ8ICI7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogKiBqIDw9IGFbaV07IGorKykgewogICAgICAgICAgICBpZiAoYVtpXSAlIGogPT0gMCkgewogICAgICAgICAgICAgICAgaWYgKGogPiB4ICYmIGogIT0gdG1wKSB7CiAgICAgICAgICAgICAgICAgICAgcHNbal0rKzsKICAgICAgICAgICAgICAgICAgICBwc1tqICsgMV0tLTsKICAgICAgICAgICAgICAgICAgICAvLyBjZXJyIDw8IGogPDwgIiAiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGFbaV0gLyBqICE9IGogJiYgYVtpXSAvIGogPiB4ICYmIGFbaV0gLyBqICE9IHRtcCkgewogICAgICAgICAgICAgICAgICAgIHBzW2FbaV0gLyBqXSsrOwogICAgICAgICAgICAgICAgICAgIHBzWyhhW2ldIC8gaikgKyAxXS0tOwogICAgICAgICAgICAgICAgICAgIC8vIGNlcnIgPDwgYVtpXSAvIGogPDwgIiAiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIGNlcnIgPDwgJ1xuJzsKICAgIH0KICAgIC8vIGNlcnIgPDwgIlxuIjsKICAgIGludCBhbnMgPSAxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgcHNbaV0gPSBwc1tpIC0gMV0gKyBwc1tpXTsKICAgICAgICBpZiAocHNbaV0gKyBrID49IG4pIGFucyA9IGk7CiAgICAgICAgLy8gY2VyciA8PCBwc1tpXSA8PCAiICI7CiAgICB9CiAgICAvLyBjZXJyIDw8ICJcbi0tLS0tLS1cbiI7CiAgICBjb3V0IDw8IGFucyA8PCAiXG4iOwp9CnNpZ25lZCBtYWluKCkgewogICAgY2luLnRpZShOVUxMKS0+c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGlmKGlmc3RyZWFtKCJJbnB1dC5pbnAiKSkgewogICAgICAgIGZyZW9wZW4oIklucHV0LmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIk91dHB1dC5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBpbnQgdHQ7IGNpbiA+PiB0dDsKICAgIHdoaWxlKHR0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0KCgovKgoxNSAxIDcgMTAgMTcgMTQgMTcgMTIgNyA0IDEwIDQgMTUgMiA2IDIgMTQgNSAKMSAgMCAwIDAgIDEgIDAgIDEgIDEgIDAgMSAwICAxICAxIDAgMCAwIDAgIDAKCgo0IDMgOAoqLw==