#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;
}