#include #include #include #include using namespace std; ifstream fin("date.in"); #define MAXM 50010 #define MAXN 27 //#define fin cin vector > solution; vector aux; int a[MAXM][MAXN]; long long rez[MAXM]; pair v[MAXN][MAXM]; int n, m; void solve(int dim){ int i; sort(v[dim] + 1, v[dim] + m + 1); long long sum = 0; for(i = 1 ; i <= m ; i++) { sum += (v[dim][i].first - v[dim][1].first); } rez[v[dim][1].second] += sum; for(i = 2 ; i <= m ; i++) { sum += 1ll * (2 * i - m - 2) * (v[dim][i].first - v[dim][i - 1].first); rez[v[dim][i].second] += sum; } } int main() { int i, j; long long minimal; fin >> m >> n; for(i = 1 ; i <= m ; i++) { for(j = 1 ; j <= n ; j++) { fin >> a[i][j]; v[j][i] = make_pair(a[i][j], i); } } for(j = 1 ; j <= n ; j++) { solve(j); } minimal = rez[1]; for(i = 1 ; i <= m ; i++) { minimal = min(minimal, rez[i]); } int s = 0; for(i = 1 ; i <= m ; i++) { if(minimal == rez[i]) { aux.clear(); for(j = 1 ; j <= n ; j++) aux.push_back(a[i][j]); solution.push_back(aux); } } cout << minimal << "\n"; cout << solution.size() << "\n"; sort(solution.begin(), solution.end()); for(auto it: solution){ for(auto it2: it){ cout << it2 << " "; } cout << "\n"; } // return 0; }