#include <iostream>
#define Size 105
using namespace std;
int F,V,ans=INT_MIN;
int A[Size][Size];
int mem[Size+5][Size+5];
int _f[Size+5],Choice[Size+5];
void DFS(int depth,int sum)
{
if(sum<=mem[depth][_f[depth-1]]) return;
mem[depth][_f[depth-1]]=sum;
if(depth>F)
{
if(sum>ans)
{
ans=sum;
for(int i=1;i<=F;i++) Choice[i]=_f[i];
}
return;
}
for(_f[depth]=_f[depth-1]+1;_f[depth]<=V-F+depth;_f[depth]++)
DFS(depth+1,sum+A[depth][_f[depth]]);
}
int main()
{
cin>>F>>V;
for(int i=1;i<=F;i++)
for(int j=1;j<=V;j++)
cin>>A[i][j];
for(int i=0;i<=F+1;i++)
for(int j=0;j<=V+1;j++)
mem[i][j]=INT_MIN;
DFS(1,0);
cout << ans << endl;
for(int i=1;i<=F;i++)cout << Choice[i] << ' ';
return 0;
}