#include <iostream>
#include <cstring>
using namespace std;

typedef pair<int,int> P;

#define INF P(999999, 999999)

int N, D;
int p[100][100];
int rev[100][100];
P dp[100][100];

void solve(){
  memset(rev, -1, sizeof(rev));
  for(int i = 0; i <= D; i++){
    for(int j = 0; j <= N; j++){
      dp[i][j] = INF;
    }
  }

  dp[D][N] = P(0, 0);

  for(int i = D; i > 0; i--){
    for(int j = 0; j <= N; j++){
      if(dp[i][j] == INF) continue;

      for(int k = 0; k < N; k++){
        P np = dp[i][j];
        np.first += p[i - 1][k];
        np.second += (k != j);

        if(dp[i - 1][k] > np){
          dp[i - 1][k] = np;
          rev[i - 1][k] = j;
        }
      }
    }
  }

  int sj = 0;

  for(int j = 0; j < N; j++){
    if(dp[0][sj] > dp[0][j]){
      sj = j;
    }
  }

  cout << dp[0][sj].first << " " << dp[0][sj].second - 1 << endl;

  for(int i = 0; i < D; i++){
    cout << sj + 1 << endl;
    sj = rev[i][sj];
  }
}

int main(){
  while(cin >> N >> D){
    for(int i = 0; i < N; i++){
      for(int j = 0; j < D; j++){
        cin >> p[j][i];
      }
    }
    solve();
  }
}