#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <vector>

using namespace std;

struct Pisica
{
    int v[25];
    long double dm;
} v[50000];

struct PisicaD
{
    long double dm;
    int id;
} pd[50000];

bool cmp(const PisicaD& a, const PisicaD& b)
{
    return a.dm < b.dm;
}

long double dmin;
vector<int> sol;
long double pc[25];
int n, m;

bool cmp2(const int& a, const int& b)
{
    for(int i = 0; i < n; i++)
        if(v[a].v[i] < v[b].v[i]) return true;
        else if(v[a].v[i] > v[b].v[i]) return false;
    return true;
}

long double distMij(int i)
{
    long double rez = 0;
    for(int j = 0; j < n; j++)
        rez += abs(pc[j] - v[i].v[j]);
    return rez;
}

long long dist(int i, int j)
{
    long long rez = 0;
    for(int k = 0; k < n; k++)
        rez += abs(v[i].v[k] - v[j].v[k]);
    return rez;
}

long long distAll(int i)
{
    long long rez = 0;
    for(int k = 0; k < m; k++)
        rez += dist(i, k);
    return rez;
}

void calcMij()
{
    for(int j = 0; j < n; j++)
    {
        long long aux = 0;
        for(int i = 0; i < m; i++)
            aux += v[i].v[j];
        pc[j] = aux / (long double)m;
    }
}

void solve()
{
    for(int i = 0; i < m; i++)
    {
        pd[i].id = i;
        pd[i].dm = distMij(i);
    }
    sort(pd, pd + m, cmp);
    dmin = pd[0].dm;
    long long di = 0x3f3f3f3f3f3f3f3f;
    for(int i = 0; i < m && pd[i].dm - pd[0].dm <= 3; i++)
    {
        long long dc = distAll(pd[i].id);
        if(dc < di)
        {
            sol.clear();
            di = dc;
            sol.push_back(pd[i].id);
        }
        else if(dc == di)
        sol.push_back(pd[i].id);
    }
    sort(sol.begin(), sol.end(), cmp2);
    int lg = sol.size();
    printf("%lld\n", di);
    printf("%d\n", lg);
    for(int i = 0; i < sol.size(); i++)
    {
        for(int j = 0; j < n; j++)
        {
            printf("%d ", v[sol[i]].v[j]);
        }
        printf("\n");
    }
}

int main()
{
    freopen("exp.in", "r", stdin);
    scanf("%d%d", &m, &n);
    for(int i = 0; i < m; i++)
        for(int j = 0; j < n; j++)
            scanf("%d", &v[i].v[j]);
    calcMij();
    solve();
    return 0;
}