#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define int long long
#define oset tree < pair<int, int> , null_type , less<pair<int, int>> , rb_tree_tag , tree_order_statistics_node_update >
using namespace std;
const int N = 1e5;
signed main(){
//You are given an array A of length N (N<=2000)
//You have to consider all contigious subarrays (O(N^2) is possible)
//K is given as input
//M x length of array >= k
//M = ceil(k/length of array)
//X = kth smallest element of B
//The kth smallest element of B would be the ceil(K/M)th smallest element of S?
//S = (1, 2, 3, 4, 5), M = 2 = (1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
//B = (1, 1, 2, 2, 3, 3, 4, 4, 5, 5), find the 9th smallest element in B
//The kth smallest element in B, would be the Yth smallest element in S
//What is Y? Y = ceil(K/M)
//ceil(9/2) = 5
//5th smallest element of S, is 5 again
//F is the frequency of X in S (the original subarray, before concatenation)
//The subarray S is beautiful if F also occurs in S
//We need to output the number of beautiful subarrays
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--){
int n, k;
cin>>n>>k;
int ans = 0;
int a[n];
for(int i = 0;i<n;i++) cin>>a[i];
for(int i = 0;i<n;i++){
int freq[2001];
for(int i = 0;i<=2000;i++) freq[i] = 0;
oset s;
for(int j = i;j<n;j++){ //iterating over all subarrays i, i+1, i+2, .., j
int m = ceil(((double)k)/(j - i + 1));
int k1 = ceil(((double)k)/m);
k1--; //we use 0 based indexing
s.insert({a[j], freq[a[j]]++});
auto it = s.find_by_order(k1);
int element = (*it).first;
int frequency = freq[element];
if(freq[frequency]>0) ans++; //subarray is beautiful
//We have a subarray i.. j
//How do we find the kth smallest number in O(1) or O(LogN)?
}
}
cout<<ans<<"\n";
}
}
//acdabcd
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBvc2V0IHRyZWUgPCBwYWlyPGludCwgaW50PiAsICBudWxsX3R5cGUgLCAgbGVzczxwYWlyPGludCwgaW50Pj4gLCAgcmJfdHJlZV90YWcgLCAgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlID4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE4gPSAxZTU7CnNpZ25lZCBtYWluKCl7CiAgICAvL1lvdSBhcmUgZ2l2ZW4gYW4gYXJyYXkgQSBvZiBsZW5ndGggTiAoTjw9MjAwMCkKICAgIC8vWW91IGhhdmUgdG8gY29uc2lkZXIgYWxsIGNvbnRpZ2lvdXMgc3ViYXJyYXlzIChPKE5eMikgaXMgcG9zc2libGUpCiAgICAvL0sgaXMgZ2l2ZW4gYXMgaW5wdXQKICAgIC8vTSB4IGxlbmd0aCBvZiBhcnJheSA+PSBrCiAgICAvL00gPSBjZWlsKGsvbGVuZ3RoIG9mIGFycmF5KQogICAgLy9YID0ga3RoIHNtYWxsZXN0IGVsZW1lbnQgb2YgQgogICAgLy9UaGUga3RoIHNtYWxsZXN0IGVsZW1lbnQgb2YgQiB3b3VsZCBiZSB0aGUgY2VpbChLL00pdGggc21hbGxlc3QgZWxlbWVudCBvZiBTPwogICAgLy9TID0gKDEsIDIsIDMsIDQsIDUpLCBNID0gMiAgPSAoMSwgMiwgMywgNCwgNSwgMSwgMiwgMywgNCwgNSkKICAgIC8vQiA9ICgxLCAxLCAyLCAyLCAzLCAzLCA0LCA0LCA1LCA1KSwgZmluZCB0aGUgOXRoIHNtYWxsZXN0IGVsZW1lbnQgaW4gQgogICAgLy9UaGUga3RoIHNtYWxsZXN0IGVsZW1lbnQgaW4gQiwgd291bGQgYmUgdGhlIFl0aCBzbWFsbGVzdCBlbGVtZW50IGluIFMKICAgIC8vV2hhdCBpcyBZPyBZID0gY2VpbChLL00pCiAgICAvL2NlaWwoOS8yKSA9IDUKICAgIC8vNXRoIHNtYWxsZXN0IGVsZW1lbnQgb2YgUywgaXMgNSBhZ2FpbgogICAgLy9GIGlzIHRoZSBmcmVxdWVuY3kgb2YgWCBpbiBTICh0aGUgb3JpZ2luYWwgc3ViYXJyYXksIGJlZm9yZSBjb25jYXRlbmF0aW9uKQogICAgLy9UaGUgc3ViYXJyYXkgUyBpcyBiZWF1dGlmdWwgaWYgRiBhbHNvIG9jY3VycyBpbiBTCiAgICAvL1dlIG5lZWQgdG8gb3V0cHV0IHRoZSBudW1iZXIgb2YgYmVhdXRpZnVsIHN1YmFycmF5cwogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgaW50IHQ7CiAgICBjaW4+PnQ7CiAgICB3aGlsZSh0LS0pewogICAgICAgIGludCBuLCBrOwogICAgICAgIGNpbj4+bj4+azsKICAgICAgICBpbnQgYW5zID0gMDsKICAgICAgICBpbnQgYVtuXTsKICAgICAgICBmb3IoaW50IGkgPSAwO2k8bjtpKyspIGNpbj4+YVtpXTsKICAgICAgICBmb3IoaW50IGkgPSAwO2k8bjtpKyspewogICAgICAgICAgICBpbnQgZnJlcVsyMDAxXTsKICAgICAgICAgICAgZm9yKGludCBpID0gMDtpPD0yMDAwO2krKykgZnJlcVtpXSA9IDA7CiAgICAgICAgICAgIG9zZXQgczsKICAgICAgICAgICAgZm9yKGludCBqID0gaTtqPG47aisrKXsgLy9pdGVyYXRpbmcgb3ZlciBhbGwgc3ViYXJyYXlzIGksIGkrMSwgaSsyLCAuLiwgagogICAgICAgICAgICAgICAgaW50IG0gPSBjZWlsKCgoZG91YmxlKWspLyhqIC0gaSArIDEpKTsKICAgICAgICAgICAgICAgIGludCBrMSA9IGNlaWwoKChkb3VibGUpaykvbSk7CiAgICAgICAgICAgICAgICBrMS0tOyAvL3dlIHVzZSAwIGJhc2VkIGluZGV4aW5nCiAgICAgICAgICAgICAgICBzLmluc2VydCh7YVtqXSwgZnJlcVthW2pdXSsrfSk7CiAgICAgICAgICAgICAgICBhdXRvIGl0ID0gcy5maW5kX2J5X29yZGVyKGsxKTsKICAgICAgICAgICAgICAgIGludCBlbGVtZW50ID0gKCppdCkuZmlyc3Q7CiAgICAgICAgICAgICAgICBpbnQgZnJlcXVlbmN5ID0gZnJlcVtlbGVtZW50XTsKICAgICAgICAgICAgICAgIGlmKGZyZXFbZnJlcXVlbmN5XT4wKSBhbnMrKzsgLy9zdWJhcnJheSBpcyBiZWF1dGlmdWwKICAgICAgICAgICAgICAgIC8vV2UgaGF2ZSBhIHN1YmFycmF5IGkuLiBqCiAgICAgICAgICAgICAgICAvL0hvdyBkbyB3ZSBmaW5kIHRoZSBrdGggc21hbGxlc3QgbnVtYmVyIGluIE8oMSkgb3IgTyhMb2dOKT8KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb3V0PDxhbnM8PCJcbiI7CiAgICB9Cn0KLy9hY2RhYmNk