#include <bits/stdc++.h>
using namespace std;
int a[105][105], dp[105][105], nex[105][105];
int main()
{
int n, m, i, j, k;
while(scanf("%d %d", &m, &n) != EOF)
{
for(i = 0; i < m; i++)
{
for(j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);
}
}
int ans = 0x3f3f3f, first = 0;
for(j = n - 1; j >= 0; j--)
{
for(i = 0; i < m; i++)
{
if(j == n - 1)dp[i][j] = a[i][j];
else
{
int row[3] = {i, i - 1, i + 1};
if(i == 0)row[1] = m - 1;
if(i == m - 1)row[2] = 0;
sort(row, row + 3);
dp[i][j] = 0x3f3f3f;
for(k = 0; k < 3; k++)
{
int v = dp[row[k]][j + 1] + a[i][j];
if(v < dp[i][j]){dp[i][j] = v; nex[i][j] = row[k];}
}
}
if(j == 0 && dp[i][j] < ans){ans = dp[i][j]; first = i;}
}
}
printf("%d", first + 1);
for(i = nex[first][0], j = 1; j < n; i = nex[i][j], j++)
printf(" %d", i + 1);
printf("\n%d\n", ans);
}
return 0;
}