#include <iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int pf[105],dp[105][105],step[105][105],a[105][105];
int n,m;
void init()
{
memset(dp,0,sizeof(dp));
memset(step,0,sizeof(step));
memset(a,0,sizeof(a));
memset(pf,0,sizeof(pf));
}
void input()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&a[i][j]);
}
void print(int l)
{
pf[n-1] = step[n][l];
for(int i=n-2;i>=1;i--)
{
pf[i] = step[i+1][pf[i+1]];
}
for(int i=1;i<=n-1;i++)
printf("%d ",pf[i]);
}
void solve(int o)
{
for(int i=1;i<=m;i++)
{dp[1][i] = a[1][i];}
for(int i=2;i<=n;i++)
for(int j=1;j<=m;j++)
{
dp[i][j] = dp[i-1][j] + a[i][j];
if(j!=1&&(dp[i][j] >= dp[i-1][j-1]+a[i][j])) {dp[i][j] = dp[i-1][j-1] + a[i][j];step[i][j] = j-1;}
if(dp[i][j] >= dp[i-1][j]+a[i][j]) {dp[i][j] = dp[i-1][j] + a[i][j];step[i][j] = j;}
if(dp[i][j] >= dp[i-1][j+1]+a[i][j]&&j!=m) {dp[i][j] = dp[i-1][j+1] + a[i][j];step[i][j] = j+1;}
}
int mins=(1<<30),slast;
for(int i=1;i<=m;i++)
{
if(dp[n][i] <= mins) {mins = dp[n][i];slast = i;}
}
printf("Case %d\n",o);
print(slast);
printf("%d\n",slast);
}
int main()
{
int t;
scanf("%d",&t);
for(int co=0;co<t;co++)
{
init();
input();
solve(co+1);
}
return 0;
}