#include #include #include #include #include using namespace std; int coords[50000][25]; int m, n; long long dist(int from, int to) { long long r = 0; for (int i = 0; i < n; i++) r += abs((long long)(coords[from][i] - coords[to][i])); return r; } double avg[25]; long long distavg(int from) { long long r = 0; for (int i = 0; i < n; i++) r += abs((long long)(coords[from][i] - avg[i])); return r; } string strcoords(int idx) { ostringstream os; for (int i = 0; i < n - 1; i++) os << coords[idx][i] << ' '; os << coords[idx][n - 1]; return os.str(); } int main() { cin >> m >> n; for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) cin >> coords[i][j]; long long sum[25] = {}; for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) sum[j] += coords[i][j]; for (int j = 0; j < n; j++) avg[j] = sum[j] / (double)m; long long min_val = -1; int min_idx = -1; vector min_str; for (int i = 0; i < m; i++) { long long d = distavg(i); if (d < min_val || min_idx == -1) { min_val = d; min_idx = i; min_str.clear(); } if (d == min_val) { min_str.push_back(strcoords(i)); } } sort(min_str.begin(), min_str.end()); long long dsum = 0; for (int i = 0; i < m; i++) dsum += dist(i, min_idx); cout << dsum << '\n'; cout << min_str.size() << '\n'; for (int i = 0; i < min_str.size(); i++) { cout << min_str[i] << '\n'; } }