
#include <stdio.h>
int P[301][21];
int T[301][21];
int B[301][21];
int M,N;
int cnt;
void recursion(int i, int j)
{
cnt--;
if(cnt>=0)
{
recursion(i-B[i][j],j-1);
printf("%d ",B[i][j]);
}
}
int main()
{
int i,j,k;
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
scanf("%d %d",&M,&N);
for(i=1;i<=M;i++)
{
for(j=0;j<=N;j++)
{
scanf("%d",&P[i][j]);
}
}
for(i=1;i<=M;i++)
{
T[i][1]=P[i][1];
B[i][1]=i;
}
for(i=1;i<=M;i++)
{
for(j=2;j<=N;j++)
{
for(k=0;k<=i;k++)
{
//T[i][j]=MAX(T[k][j-1]+P[i-k][j]);
if(T[i][j]<T[k][j-1]+P[i-k][j])
{
T[i][j]=T[k][j-1]+P[i-k][j];
B[i][j]=i-k;
}
}
}
}
printf("%d\n",T[M][N]);
cnt=N;
recursion(M,N);
return 0;
}