#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;
}
