#include <iostream>
#include <stdio.h>
#include <queue>
#include <math.h>
#include <string>
#include <algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a<b;
}
int main()
{
int a[2010],b[2010];
int n,m,i,j,t,y;
cin>>t;
while(t--)
{
scanf("%d%d",&m,&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n,cmp);
priority_queue <int> q;
for(i=1;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",&b[j]);
sort(b,b+n,cmp);
for(j=0;j<n;j++)
{
q.push(b[0]+a[j]);
}
for(j=1;j<n;j++)
{
for(y=0;y<n;y++)
{
if(a[y]+b[j]>=q.top()) break;
q.pop();
q.push(a[y]+b[j]);
}
}
for(j=0;j<n;j++)
{
a[n-1-j]=q.top();
q.pop();
}
}
for(i=0;i<n;i++)
{
if(i==0)
printf("%d",a[i]);
else
printf(" %d",a[i]);
}
cout << endl;
}
return 0;
}