import sys
import math
MOD = 1000000007
def solve():
pass
for _ in range(int(input())):
n, k = map(int, input().split())
a = list(map(int, input().split()))
c = len(set(a))
if k >= c: print(1)
elif k == 1: print(-1)
else:
print(math.ceil((c-1)/(k-1)))
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define fi(i, m, n) for (ll i = m; i < n; i++)
#define fd(i, n, m) for (ll i = n; i >= m; i--)
const int mod = 1e9 + 7;
const double e =1e-7;
void solve(){
int n,k;
cin >> n >> k;
unordered_set <int> s;
vector <int> a(n);
for(int i=0;i<n;++i){
cin >> a[i];
s.insert(a[i]);
}
int n_d = s.size();
if(n_d > 1 && k ==1){cout << -1 << endl;}
else if (n_d==1 && k==1){cout << 1 << endl;}
else {cout << (max(0,(n_d-2))/(k-1)+1)<<endl;}
}
int main()
{
int t;
cin >> t;
while (t--) solve();
}
516. Longest Palindromic Subsequence | 468. Validate IP Address |
450. Delete Node in a BST | 445. Add Two Numbers II |
442. Find All Duplicates in an Array | 437. Path Sum III |
436. Find Right Interval | 435. Non-overlapping Intervals |
406. Queue Reconstruction by Height | 380. Insert Delete GetRandom O(1) |
332. Reconstruct Itinerary | 368. Largest Divisible Subset |
377. Combination Sum IV | 322. Coin Change |
307. Range Sum Query - Mutable | 287. Find the Duplicate Number |
279. Perfect Squares | 275. H-Index II |
274. H-Index | 260. Single Number III |
240. Search a 2D Matrix II | 238. Product of Array Except Self |
229. Majority Element II | 222. Count Complete Tree Nodes |
215. Kth Largest Element in an Array | 198. House Robber |
153. Find Minimum in Rotated Sorted Array | 150. Evaluate Reverse Polish Notation |
144. Binary Tree Preorder Traversal | 137. Single Number II |