#include using namespace std; #define int long long void Read(int &x) { cin >> x; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, m; Read(n); Read(m); vector> Nums(n, vector(m)); vector I(n); for(int i = 0; i < n; ++i) { for(int j = 0; j < m; ++j) Read(Nums[i][j]); I[i] = i; } sort(Nums.begin(), Nums.end()); vector Total(n, 0); unordered_map Norm; for(int dim = 0; dim < m; ++dim) { sort(I.begin(), I.end(), [&](int a, int b) { return Nums[a][dim] < Nums[b][dim]; }); long long pref = 0, suff = 0, smaller = 0; for(int i = 0; i < n; ++i) { suff += Nums[i][dim]; } for(auto i : I) { long long now = 0; long long d = Nums[i][dim]; now += d * smaller - pref; assert(now >= 0); now += suff - d * (n - smaller); assert(now >= 0); Total[i] += now; pref += d; suff -= d; smaller += 1; } assert(suff == 0); } long long best = 4e18; for(auto x : Total) best = min(best, x); vector> Ans; for(int i = 0; i < n; ++i) { if(Total[i] == best) { Ans.push_back(Nums[i]); } } cout << best << endl << Ans.size() << endl; for(auto x : Ans) { for(auto y : x) { cout << y << " "; } cout << '\n'; } return 0; }