#include <bits/stdc++.h>
using namespace std;
int f, v, a[110][110], dp[110][110], t;
void print (int k) {
if (!k) {
return;
}
int tmp = k;
while (dp[k][tmp] != t) {
tmp++;
}
t -= a[k][tmp];
print(k - 1);
cout << tmp << " ";
}
int main () {
cin >> f >> v;
memset(dp, -127, sizeof(dp));
for (int i = 1; i <= 100; i++) {
dp[0][i] = 0;
dp[i][0] = 0;
}
for (int i = 1; i <= f; i++) {
for (int j = 1; j <= v; j++) {
cin >> a[i][j];
}
}
for (int i = 1; i <= f; i++) {
for (int j = i; j <= v - f + i; j++) {
for (int k = i; k <= j; k++) {
dp[i][j] = max(dp[i][j], dp[i - 1][k - 1] + a[i][k]);
}
}
}
cout << dp[f][v] << endl;
t = dp[f][v];
print(f);
return 0;
}
开O2一红一紫,不开O2两红