#include <bits/stdc++.h> using namespace std; typedef long long ll; const int Nmax = 50005; ll ans = LLONG_MAX, dist[Nmax], S[Nmax]; int i, j, n, m, ap; vector<int> start[Nmax]; vector< pair<int,int> > v[30]; vector< vector<int> > sol; int main() { // freopen("input", "r", stdin); // freopen("output", "w", stdout); cin >> n >> m; for(i=0; i<m; ++i) v[i].resize(n); for(i=0; i<n; ++i) { start[i].resize(m); for(j=0; j<m; ++j) { cin >> start[i][j]; v[j][i] = { start[i][j], i }; } } for(i=0; i<m; ++i) { sort(v[i].begin(), v[i].end()); S[0] = v[i][0].first; for(j=1; j<n; ++j) S[j] = S[j-1] + v[i][j].first; for(j=0; j<n; ++j) dist[v[i][j].second] += (1LL * v[i][j].first * (j+1) - S[j]) + (S[n-1] - S[j] - 1LL * v[i][j].first * (n-j-1)); } for(i=0; i<n; ++i) ans = min(ans, dist[i]); cout << ans << '\n'; for(i=0; i<n; ++i) if(dist[i] == ans) sol.push_back(start[i]); sort(sol.begin(), sol.end()); cout << sol.size() << '\n'; for(auto v : sol) { for(auto it : v) cout << it << " "; cout << '\n'; } return 0; }