#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int minCardsLeft(int n, int k, vector<int>& cards) {
unordered_map<int, int> freq;
for (int card : cards) {
freq[card]++;
}
int minCards = 0;
for (auto it = freq.begin(); it != freq.end(); ++it) {
int num = it->first;
int count = it->second;
while (count >= k) {
minCards += k;
count -= (k - 1);
}
minCards += count;
}
return n - minCards;
}
int main() {
int t;
cin >> t;
while (t--) {
int n, k;
cin >> n >> k;
vector<int> cards(n);
for (int i = 0; i < n; ++i) {
cin >> cards[i];
}
cout << minCardsLeft(n, k, cards) << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWluQ2FyZHNMZWZ0KGludCBuLCBpbnQgaywgdmVjdG9yPGludD4mIGNhcmRzKSB7CiAgICB1bm9yZGVyZWRfbWFwPGludCwgaW50PiBmcmVxOwogICAgZm9yIChpbnQgY2FyZCA6IGNhcmRzKSB7CiAgICAgICAgZnJlcVtjYXJkXSsrOwogICAgfQoKICAgIGludCBtaW5DYXJkcyA9IDA7CiAgICBmb3IgKGF1dG8gaXQgPSBmcmVxLmJlZ2luKCk7IGl0ICE9IGZyZXEuZW5kKCk7ICsraXQpIHsKICAgICAgICBpbnQgbnVtID0gaXQtPmZpcnN0OwogICAgICAgIGludCBjb3VudCA9IGl0LT5zZWNvbmQ7CiAgICAgICAgd2hpbGUgKGNvdW50ID49IGspIHsKICAgICAgICAgICAgbWluQ2FyZHMgKz0gazsKICAgICAgICAgICAgY291bnQgLT0gKGsgLSAxKTsKICAgICAgICB9CiAgICAgICAgbWluQ2FyZHMgKz0gY291bnQ7CiAgICB9CiAgICByZXR1cm4gbiAtIG1pbkNhcmRzOwp9CgppbnQgbWFpbigpIHsKICAgIGludCB0OwogICAgY2luID4+IHQ7CgogICAgd2hpbGUgKHQtLSkgewogICAgICAgIGludCBuLCBrOwogICAgICAgIGNpbiA+PiBuID4+IGs7CiAgICAgICAgdmVjdG9yPGludD4gY2FyZHMobik7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICAgICAgY2luID4+IGNhcmRzW2ldOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IG1pbkNhcmRzTGVmdChuLCBrLCBjYXJkcykgPDwgZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=
Nwo1IDMKNCAxIDEgNCA0CjEgMTAKNwo3IDIKNCAyIDEgMTAwIDUgMiAzCjEwIDQKMSAxIDEgMSAxIDEgMSAxIDEgMQo1IDIKMyA4IDEgNDggNwo2IDIKMTAgMjAgMzAgMTAgMjAgNDAKNiAzCjEwIDIwIDMwIDEwIDIwIDQwCg==
7
5 3
4 1 1 4 4
1 10
7
7 2
4 2 1 100 5 2 3
10 4
1 1 1 1 1 1 1 1 1 1
5 2
3 8 1 48 7
6 2
10 20 30 10 20 40
6 3
10 20 30 10 20 40