#include <bits/stdc++.h>

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<vector<int>> Nums(n, vector<int>(m));
	vector<int> 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<long long> Total(n, 0);

	unordered_map<int, int> 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<vector<int>> 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;
}