#include <iostream>
#include <iomanip>
#include <fstream>
#include <string.h>
#include <algorithm>

#define nMax 50003
#define mMax 30
#define INF 2000000000000000

using namespace std;

//ifstream cin("000.in");
//ofstream cout("000.out");

int n, m, nrSol;
long long Sol, distMin;
int mat[nMax][mMax], newMat[nMax][mMax], v[nMax], height[mMax];

int comp(int a, int b)
{
    for(int i=1; i<=m; i++)
    {
        if(mat[a][i]<mat[b][i])
            return 1;
        if(mat[a][i]>mat[b][i])
            return 0;
    }
    return 0;
}

int cmp(int a, int b)
{
    return comp(a, b);
}

long long int abs(long long int val)
{
    if(val<0)
        return -val;
    return val;
}

int main()
{
    cin>>n>>m;
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
            cin>>mat[i][j];
        v[i]=i;
    }

    sort(v+1, v+n+1, cmp);
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
            newMat[i][j]=mat[v[i]][j];
    for(int j=1; j<=m; j++)
    {
        long long nrDist=0;

        for(int i=1; i<=n; i++)
            nrDist+=newMat[i][j];
        int rez=nrDist/n;
        int jos=rez, sus=rez+1;
        long long potJos=0, potSus=0;

        for(int i=1; i<=n; i++)
        {
            potJos+=abs(newMat[i][j]-jos);
            potSus+=abs(newMat[i][j]-sus);
        }
        if(potJos<=potSus)
        {
            Sol+=potJos;
            height[j]=jos;
        }
        else
        {
            Sol+=potSus;
            height[j]=sus;
        }
    }

    cout<<Sol<<'\n';

    long long distMin=INF;
    for(int i=1; i<=n; i++)
    {
        long long dist=0;
        for(int j=1; j<=m; j++)
            dist+=abs(height[j]-newMat[i][j]);
        if(dist<distMin)
        {
            nrSol=1;
            distMin=dist;
        }
        else
            if(dist==distMin)
                nrSol++;
    }
    cout<<nrSol<<'\n';
    for(int i=1; i<=n; i++)
    {
        long long dist=0;
        for(int j=1; j<=m; j++)
            dist+=abs(height[j]-newMat[i][j]);
        if(dist==distMin)
        {
            for(int j=1; j<=m; j++)
                cout<<newMat[i][j]<<" ";
            cout<<'\n';
        }
    }
    return 0;
}