#include <bits/stdc++.h>
using namespace std;
void helper(vector<int>&nums,int n,vector<pair<int,int>>&firstAndLast,vector<bool>&present,vector<vector<int>>&pref){
for(int i=0;i<n;i++){
int num=nums[i];
//pref update
pref[i+1]=pref[i];
pref[i+1][num]++;
//firstAndLast
if(firstAndLast[num].first==-1){
firstAndLast[num]={i,i};
}else{
firstAndLast[num].second=i;
}
//present
present[num]=true;
}
}
int solve(vector<int>&nums,int st,int end,int k,vector<vector<int>>&pref){
if(k==1){
return max(nums[st-1],nums[end+1]);
}
if(k==2){
return nums[st-1]+nums[end+1];
}
k-=2;
int ans=nums[st-1]+nums[end+1];
int cur=50;
while(k>0&&cur>=1){
int count=pref[end+1][cur]-pref[st][cur];
int taken=min(count,k);
k-=taken;
ans+=cur*taken*2;
cur--;
}
if(k>0)return INT_MIN;
return ans;
}
int main() {
// your code goes here
int test;
cin>>test;
while(test--){
int n,k;
cin>>n>>k;
vector<int>nums(n);
for(int i=0;i<n;i++){
cin>>nums[i];
}
//find the first and last occurance
vector<pair<int,int>>firstAndLast(51,{-1,-1});
vector<bool>present(51,false);//if elemnt is preent or not
vector<vector<int>>pref(n+1,vector<int>(51,0));//pref count only 50 elemnts
helper(nums,n,firstAndLast,present,pref);
int ans=0;
for(int i=1;i<=50;i++){
if(present[i]){
for(int j=1;j<=50;j++){
if(present[j]){
int st=firstAndLast[i].first;
int end=firstAndLast[j].second;
if(st<end){
ans=max(ans,solve(nums,st+1,end-1,k,pref));
}
}
}
}
}
cout<<ans<<endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKdm9pZCBoZWxwZXIodmVjdG9yPGludD4mbnVtcyxpbnQgbix2ZWN0b3I8cGFpcjxpbnQsaW50Pj4mZmlyc3RBbmRMYXN0LHZlY3Rvcjxib29sPiZwcmVzZW50LHZlY3Rvcjx2ZWN0b3I8aW50Pj4mcHJlZil7CiAgICAKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIGludCBudW09bnVtc1tpXTsKICAgICAgICAvL3ByZWYgdXBkYXRlCiAgICAgICAgcHJlZltpKzFdPXByZWZbaV07CiAgICAgICAgcHJlZltpKzFdW251bV0rKzsKICAgICAgICAKICAgICAgICAvL2ZpcnN0QW5kTGFzdAogICAgICAgIGlmKGZpcnN0QW5kTGFzdFtudW1dLmZpcnN0PT0tMSl7CiAgICAgICAgICAgIGZpcnN0QW5kTGFzdFtudW1dPXtpLGl9OwogICAgICAgIH1lbHNlewogICAgICAgICAgICBmaXJzdEFuZExhc3RbbnVtXS5zZWNvbmQ9aTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9wcmVzZW50CiAgICAgICAgcHJlc2VudFtudW1dPXRydWU7CiAgICB9Cn0KCmludCBzb2x2ZSh2ZWN0b3I8aW50PiZudW1zLGludCBzdCxpbnQgZW5kLGludCBrLHZlY3Rvcjx2ZWN0b3I8aW50Pj4mcHJlZil7CiAgIAogICBpZihrPT0xKXsKICAgICAgIHJldHVybiBtYXgobnVtc1tzdC0xXSxudW1zW2VuZCsxXSk7CiAgIH0gCiAgIGlmKGs9PTIpewogICAgICAgcmV0dXJuIG51bXNbc3QtMV0rbnVtc1tlbmQrMV07CiAgIH0KICAgay09MjsKICAgCiAgIGludCBhbnM9bnVtc1tzdC0xXStudW1zW2VuZCsxXTsKICAgaW50IGN1cj01MDsKICAgCiAgIHdoaWxlKGs+MCYmY3VyPj0xKXsKICAgICAgIGludCBjb3VudD1wcmVmW2VuZCsxXVtjdXJdLXByZWZbc3RdW2N1cl07CiAgICAgICAKICAgICAgIGludCB0YWtlbj1taW4oY291bnQsayk7CiAgICAgICBrLT10YWtlbjsKICAgICAgIGFucys9Y3VyKnRha2VuKjI7CiAgICAgICBjdXItLTsKICAgICAgIAogICB9CiAgIGlmKGs+MClyZXR1cm4gSU5UX01JTjsKICAgcmV0dXJuIGFuczsKfQppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKICAgICAKICAgICBpbnQgdGVzdDsKICAgICBjaW4+PnRlc3Q7CiAgICAgCiAgICAgCiAgICAgd2hpbGUodGVzdC0tKXsKICAgICAgICAgaW50IG4sazsKICAgICAgICAgY2luPj5uPj5rOwogICAgICAgICAKICAgICAgICAgdmVjdG9yPGludD5udW1zKG4pOwogICAgICAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICAgICAgIGNpbj4+bnVtc1tpXTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy9maW5kIHRoZSBmaXJzdCBhbmQgbGFzdCBvY2N1cmFuY2UKICAgICAgICAgdmVjdG9yPHBhaXI8aW50LGludD4+Zmlyc3RBbmRMYXN0KDUxLHstMSwtMX0pOwogICAgICAgICB2ZWN0b3I8Ym9vbD5wcmVzZW50KDUxLGZhbHNlKTsvL2lmIGVsZW1udCBpcyBwcmVlbnQgb3Igbm90CiAgICAgICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj5wcmVmKG4rMSx2ZWN0b3I8aW50Pig1MSwwKSk7Ly9wcmVmIGNvdW50IG9ubHkgNTAgZWxlbW50cwogICAgICAgICBoZWxwZXIobnVtcyxuLGZpcnN0QW5kTGFzdCxwcmVzZW50LHByZWYpOwogICAgICAgICAKICAgICAgICAgaW50IGFucz0wOwogICAgICAgICAKICAgICAgICAgZm9yKGludCBpPTE7aTw9NTA7aSsrKXsKICAgICAgICAgICAgIGlmKHByZXNlbnRbaV0pewogICAgICAgICAgICAgICAgIGZvcihpbnQgaj0xO2o8PTUwO2orKyl7CiAgICAgICAgICAgICAgICAgICAgIGlmKHByZXNlbnRbal0pewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0PWZpcnN0QW5kTGFzdFtpXS5maXJzdDsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmQ9Zmlyc3RBbmRMYXN0W2pdLnNlY29uZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHN0PGVuZCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zPW1heChhbnMsc29sdmUobnVtcyxzdCsxLGVuZC0xLGsscHJlZikpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGNvdXQ8PGFuczw8ZW5kbDsKICAgICAgICAgCiAgICAgfQp9Cg==