#include<bits/stdc++.h>
using namespace std;
bool check(vectorv,int n,int m,int mid){
int curr = v[0];
int count = 1;
for(int i=0;i<n;i++){
if(curr+v[i]>mid){
count++;
}
curr = v[i];
if(count>m){
return false;
}
}
return true;
}
int ans(vectorv,int n,int m){
int start = v[n-1];
int sum = 0;
int ans = -1;
for(int i=0;i<n;i++){
sum = sum + v[i];
}
int end = sum;
while(start<=end){
int mid = (start+end)/2;
bool check1 = check(v,n,m,mid);
if(check1==true){
ans = mid;
end = mid - 1;
}else{
start = mid + 1;
}
}
return ans;
}
int main() {
int t;
cin>>t;
while(t–){
int n;
cin>>n;
int m;
cin>>m;
vectorv;
for(int i=0;i<n;i++){
int x;
cin>>x;
v.push_back(x);
}
cout << ans(v,n,m);
}
}