For this Question: Hawkeye has been assigned to eliminate n monsters, the i<sup>th</sup> of which is of type a<sub>i</sub>. In one move, he can do either of the following:

i. Shoot down atmost any k monsters. In other words, he can shoot down any set of monsters such that the size of that set is smaller than or equal to k.
ii. Shoot down all monsters of any one type.

Find the minimum number of moves it will take him to shoot down all the monsters.The first line contains one integer t — the number of test cases. Each test case consists of two lines. 
The first line contains two space-separated integers n and k.
The second line contains n space-separated integers a<sub>1</sub>, a<sub>2</sub> . . .  a<sub>n</sub>.

<b>Constraints:</b>
1 ≤ t ≤ 10<sup>5</sup>
1 ≤ k ≤ n ≤ 10<sup>5</sup>
1 ≤ a<sub>i</sub> ≤ n
The sum of n over all test cases does not exceed 10<sup>5</sup>. For each test case, print a single value - the minimum number of moves required.Sample input
3
7 2
1 2 3 4 4 4 4
5 3
1 2 3 1 2
5 3
5 5 5 5 5

Sample output
3
2
1

Explanation:
For the first test case, the minimum moves required is 3. One way to do so is that Hawkeye can first shoot monsters 1 and 2 in one move using the second operation. 
Then he can shoot down all monsters of type 4 using the first operation, followed by shooting monster 3 by either method., I have written this Solution Code: #include<bits/stdc++.h>

using namespace std;

#define int long long


void solve()
{
	int t;
	cin>>t;
	while(t--)
	{

		int n, k;
		cin>>n>>k;
		vector<int> a(n);
		for(auto &i:a)
			cin>>i;

		map<int, int> type;
		int sm = 0;
		int cnt = 0;
		for(auto i:a)
			type[i]++;

		for(auto i:type)
			if(i.second >= k)
				cnt++;
			else
				sm+=i.second;

		cnt += (sm + k-1)/k;

		cout<<cnt<<endl;

	}
}
signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cerr.tie(NULL);

	#ifndef ONLINE_JUDGE
	    if (fopen("INPUT.txt", "r"))
	    {
	        freopen("INPUT.txt", "r", stdin);
	        freopen("OUTPUT.txt", "w", stdout);

	    }
	#endif

	solve();



}, In this Programming Language: C++, Now tell me if this Code is compilable or not?