#include <bits/stdc++.h>
using namespace std;
bool can_form_k_sets(int x, int k, unordered_map<int, int>& freq) {
int sets = INT_MAX;
for (int i = 0; i < x; ++i) {
sets = min(sets, freq[i]); // each number i in 0..x-1 must appear at least once per set
}
return sets >= k;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t--) {
int n, k;
cin >> n >> k;
vector<int> a(n);
unordered_map<int, int> freq;
for (int i = 0; i < n; ++i) {
cin >> a[i];
freq[a[i]]++;
}
int low = 0, high = n, ans = 0;
while (low <= high) {
int mid = (low + high) / 2;
if (can_form_k_sets(mid, k, freq)) {
ans = mid; // try higher
low = mid + 1;
} else {
high = mid - 1; // too much, try lower
}
}
cout << ans << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGNhbl9mb3JtX2tfc2V0cyhpbnQgeCwgaW50IGssIHVub3JkZXJlZF9tYXA8aW50LCBpbnQ+JiBmcmVxKSB7CiAgICBpbnQgc2V0cyA9IElOVF9NQVg7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHg7ICsraSkgewogICAgICAgIHNldHMgPSBtaW4oc2V0cywgZnJlcVtpXSk7IC8vIGVhY2ggbnVtYmVyIGkgaW4gMC4ueC0xIG11c3QgYXBwZWFyIGF0IGxlYXN0IG9uY2UgcGVyIHNldAogICAgfQogICAgcmV0dXJuIHNldHMgPj0gazsKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIGludCB0OwogICAgY2luID4+IHQ7CgogICAgd2hpbGUgKHQtLSkgewogICAgICAgIGludCBuLCBrOwogICAgICAgIGNpbiA+PiBuID4+IGs7CiAgICAgICAgdmVjdG9yPGludD4gYShuKTsKICAgICAgICB1bm9yZGVyZWRfbWFwPGludCwgaW50PiBmcmVxOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgICAgICBmcmVxW2FbaV1dKys7CiAgICAgICAgfQoKICAgICAgICBpbnQgbG93ID0gMCwgaGlnaCA9IG4sIGFucyA9IDA7CgogICAgICAgIHdoaWxlIChsb3cgPD0gaGlnaCkgewogICAgICAgICAgICBpbnQgbWlkID0gKGxvdyArIGhpZ2gpIC8gMjsKICAgICAgICAgICAgaWYgKGNhbl9mb3JtX2tfc2V0cyhtaWQsIGssIGZyZXEpKSB7CiAgICAgICAgICAgICAgICBhbnMgPSBtaWQ7ICAgICAgICAvLyB0cnkgaGlnaGVyCiAgICAgICAgICAgICAgICBsb3cgPSBtaWQgKyAxOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaGlnaCA9IG1pZCAtIDE7ICAgLy8gdG9vIG11Y2gsIHRyeSBsb3dlcgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==