#include<bits/stdc++.h>
using namespace std;
#define int long long
int n, m, a[105][105], ans, dp[105][105], b[105], used[105];
void dfs(int l, int cnt) {
if(cnt == dp[n][m]) {
for(int i = 1;i < n;i ++) {
cout << b[i] << " ";
}
cout << b[n];
exit(0);
}
for(int i = 1;i <= m;i ++) {
if(!used[i]) {
used[i] = 1;
b[l] = i;
dfs(l + 1, cnt + a[l][i]);
used[i] = 0;
}
}
}
signed main() {
cin >> n >> m;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
cin >> a[i][j];
}
}
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
dp[i][j] = max(dp[i][j - 1], dp[i - 1][j - 1] + a[i][j]);
}
}
cout << dp[n][m] << endl;
dfs(1, 0);
return 0;
}
麻烦不要上来就贴代码,请给出我的思路错了哪里,谢谢