#include<bits/stdc++.h>
#define ll long long
#define endl "\n"
#define F first
#define S second
#define loop(a,n) for(int i=a; i<=n ; i++)
#define TIME (1.0 * clock() / CLOCKS_PER_SEC)
#define NAME ""
using namespace std;
int n, m, a[1001][1001], f[1001][1001];
void nhap(){
cin >> n >> m;
for(int i = 1;i <= n; ++i) {
for(int j = 1;j <= m;++j){
cin >> a[i][j];
}
}
}
void solve(){
for(int j = 0;j <= m; ++j) f[0][j] = 0;
for(int i = 1;i <= n; ++i){
for(int j = 1;j <= m; ++j){
f[i][j] = f[i][j-1];
if(i < j) {
f[i][j] = max(f[i][j], f[i-1][j-1] + a[i][j]);
}
}
}
cout << f[n][m] << endl;
vector<int> pos(n + 1);
int i = n, j = m;
while(i > 0 && j > 0){
if(f[i][j] == f[i][j-1]) {
--j;
} else {
pos[i] = j;
--i; --j;
}
}
for(int k = 1; k <= n; ++k){
cout << pos[k] << " ";
}
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
//freopen(NAME".INP","r",stdin);
//freopen(NAME".OUT","w",stdout);
nhap();
solve();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBsb29wKGEsbikgZm9yKGludCBpPWE7IGk8PW4gOyBpKyspCiNkZWZpbmUgVElNRSAoMS4wICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDKQojZGVmaW5lIE5BTUUgIiIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBuLCBtLCBhWzEwMDFdWzEwMDFdLCBmWzEwMDFdWzEwMDFdOwoKdm9pZCBuaGFwKCl7CiAgICBjaW4gPj4gbiA+PiBtOwogICAgZm9yKGludCBpID0gMTtpIDw9IG47ICsraSkgewogICAgICAgIGZvcihpbnQgaiA9IDE7aiA8PSBtOysrail7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldW2pdOwogICAgICAgIH0KICAgIH0KfQp2b2lkIHNvbHZlKCl7CiAgICBmb3IoaW50IGogPSAwO2ogPD0gbTsgKytqKSBmWzBdW2pdID0gMDsKICAgIGZvcihpbnQgaSA9IDE7aSA8PSBuOyArK2kpewogICAgICAgIGZvcihpbnQgaiA9IDE7aiA8PSBtOyArK2opewogICAgICAgICAgICBmW2ldW2pdID0gZltpXVtqLTFdOwogICAgICAgICAgICBpZihpIDwgaikgewogICAgICAgICAgICAgICAgZltpXVtqXSA9IG1heChmW2ldW2pdLCBmW2ktMV1bai0xXSArIGFbaV1bal0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBmW25dW21dIDw8IGVuZGw7CgogICAgdmVjdG9yPGludD4gcG9zKG4gKyAxKTsKICAgIGludCBpID0gbiwgaiA9IG07CiAgICB3aGlsZShpID4gMCAmJiBqID4gMCl7CiAgICAgICAgaWYoZltpXVtqXSA9PSBmW2ldW2otMV0pIHsKICAgICAgICAgICAgLS1qOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHBvc1tpXSA9IGo7CiAgICAgICAgICAgIC0taTsgLS1qOwogICAgICAgIH0KICAgIH0KICAgIGZvcihpbnQgayA9IDE7IGsgPD0gbjsgKytrKXsKICAgICAgICBjb3V0IDw8ICBwb3Nba10gPDwgIiAiOwogICAgfQp9CgppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICAvL2ZyZW9wZW4oTkFNRSIuSU5QIiwiciIsc3RkaW4pOwogICAgLy9mcmVvcGVuKE5BTUUiLk9VVCIsInciLHN0ZG91dCk7CiAgICBuaGFwKCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0=