#include
using namespace std;
bool condition( int a[],int n,int m,int max_page)
{
int c[m],i,j,p=0;
c[m]={0};
j=0;
for(i=0;i<n;i++)
{
c[j]+=a[i];
p++;
if(c[j]>=max_page)
{
j++;
}
if(j==m-1)
{
break;
}
}
if(p==n)
return true;
else
return false;
}
int pages(int a[],int n,int m)
{
int s,e,mid,i,ans,sum=0;
ans=-1;
s=a[n-1];
for(i=0;i<n;i++)
{
sum=sum+a[i];
}
e=sum;
while(s<=e)
{
mid=(s+e)/2;
if(condition(a,n,m,mid))
{
ans=mid;
e=mid-1;
}
else
{
s=mid+1;
}
}
return ans;
}
int main()
{
int t,i;
cin>>t;
for(i=0;i<t;i++)
{
int n,m;
cin>>n;
cin>>m;
int a[n];
for(int j=0;j<n;j++)
{
cin>>a[i];
}
cout<<pages(a,n,m);
}
return 0;
}