#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
#define inf 1000000000000000LL
#define mod 1000000007LL
#define FOR(i,a,b) for(ll i = a; i < b; i++)
void solve() {
ll n,k;
cin >> n >> k;
vector <ll> l1(n); FOR(i,0,n) cin >> l1[i];
vector <ll> pos(k+1, inf);
for (int i = 0; i < n; i++){
if (pos[l1[i]] == inf) pos[l1[i]] = i;
}
for (int i = k - 1; i >= 0; i--){
pos[i] = min(pos[i], pos[i+1]);
}
ll dp[k+1][k+1];
FOR(i,0,k+1)FOR(j,0,k+1) dp[i][j] = -inf;
dp[0][0] = 0;
for (ll i = 0; i <= k; i++){
if (pos[i] == inf) continue;
for (ll j = i - 1; j >= 0; j--){
if (pos[j] == inf) continue;
for (ll cost = k; cost >= i; cost--){
dp[i][cost] = max(dp[i][cost], dp[j][cost - i] + j * (pos[i] - pos[j]));
}
}
}
ll answ = 0;
FOR(i,0,k+1){
if (pos[i] == inf) continue;
FOR(j,0,k+1){
answ = max(answ, dp[i][j] + i * (n - pos[i]));
}
}
cout << answ << "\n";
}
int main() {
// ios::sync_with_stdio(false);
// cin.tie(nullptr);
ll t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nIGludDsKI2RlZmluZSBpbmYgMTAwMDAwMDAwMDAwMDAwMExMCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDdMTAojZGVmaW5lIEZPUihpLGEsYikgZm9yKGxsIGkgPSBhOyBpIDwgYjsgaSsrKQoKdm9pZCBzb2x2ZSgpIHsKICAgIGxsIG4sazsKICAgIGNpbiA+PiBuID4+IGs7CiAgICB2ZWN0b3IgPGxsPiBsMShuKTsgRk9SKGksMCxuKSBjaW4gPj4gbDFbaV07CiAgICB2ZWN0b3IgPGxsPiBwb3MoaysxLCBpbmYpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspewogICAgICAgIGlmIChwb3NbbDFbaV1dID09IGluZikgcG9zW2wxW2ldXSA9IGk7CiAgICB9CiAgICBmb3IgKGludCBpID0gayAtIDE7IGkgPj0gMDsgaS0tKXsKICAgICAgICBwb3NbaV0gPSBtaW4ocG9zW2ldLCBwb3NbaSsxXSk7CiAgICB9CiAgICBsbCBkcFtrKzFdW2srMV07CiAgICBGT1IoaSwwLGsrMSlGT1IoaiwwLGsrMSkgZHBbaV1bal0gPSAtaW5mOwogICAgZHBbMF1bMF0gPSAwOwogICAgZm9yIChsbCBpID0gMDsgaSA8PSBrOyBpKyspewogICAgICAgIGlmIChwb3NbaV0gPT0gaW5mKSBjb250aW51ZTsKICAgICAgICBmb3IgKGxsIGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pewogICAgICAgICAgICBpZiAocG9zW2pdID09IGluZikgY29udGludWU7CiAgICAgICAgICAgIGZvciAobGwgY29zdCA9IGs7IGNvc3QgPj0gaTsgY29zdC0tKXsKICAgICAgICAgICAgICAgIGRwW2ldW2Nvc3RdID0gbWF4KGRwW2ldW2Nvc3RdLCBkcFtqXVtjb3N0IC0gaV0gKyBqICogKHBvc1tpXSAtIHBvc1tqXSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgbGwgYW5zdyA9IDA7CiAgICBGT1IoaSwwLGsrMSl7CiAgICAgICAgaWYgKHBvc1tpXSA9PSBpbmYpIGNvbnRpbnVlOwogICAgICAgIEZPUihqLDAsaysxKXsKICAgICAgICAgICAgYW5zdyA9IG1heChhbnN3LCBkcFtpXVtqXSArIGkgKiAobiAtIHBvc1tpXSkpOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgYW5zdyA8PCAiXG4iOwp9CgppbnQgbWFpbigpIHsKICAgIC8vIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIC8vIGNpbi50aWUobnVsbHB0cik7CgogICAgbGwgdCA9IDE7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQoKICAgIHJldHVybiAwOwp9