#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>

using namespace std;

const long long inf = 1LL<<62;

long long sum(long long t, const vector<long long>&v)
{
  long long ret = 0;
  for(int i = 0; i < (int)v.size(); ++i){
    ret += llabs(v[i]-t);
  }
  return 2*ret;
}

const int dt[2][9] = { {-1,-1,-1,0,0,0,1,1,1},
                       {-1, 0, 1,-1,0,1,-1,0,1} };

int main()
{
  long long w,h;
  while(EOF!=scanf("%lld%lld", &w, &h)){
    int n;
    long long res = inf;
    long long res_coord[2];
    vector<long long> coord[2], org[2];
    
    scanf("%d", &n);
    for(int i = 0; i < n; ++i){
      for(int j = 0; j < 2; ++j){
        long long t; scanf("%lld", &t); coord[j].push_back(t);
      }
    }

    org[0] = coord[0];
    org[1] = coord[1];
    sort(coord[0].begin(),coord[0].end());
    sort(coord[1].begin(),coord[1].end());

    long long minc[2] = {inf,inf};
    long long ind[2];
    for(int i = n/2-1; i <= n/2+1; ++i){
      if( i < 0 || i >= n ) continue;
      for(int j = 0; j < 2; ++j){
        long long tm = sum(coord[j][i],coord[j]);
        if( minc[j] > tm ){ minc[j] = tm; ind[j] = i; }
      }
    }
    
    for(int i = 0; i < 9; ++i){
      bool inv = false;
      long long tind[2];
      long long tsum[2] = {0,0};
      for(int j = 0; j < 2; ++j){
        tind[j] = ind[j]+dt[j][i];
        if( tind[j]<0 || tind[j]>=n ){ inv = true; continue; }
        tsum[j] = sum(coord[j][tind[j]],coord[j]);
      }
      if( inv ) continue;
      for(int k = 0; k < n; ++k){
        long long t[2];
        for(int j = 0; j < 2; ++j){
          t[j] = tsum[j] - llabs(org[j][k]-coord[j][tind[j]]);
        }
        if( res > t[0] + t[1] ){
          res = t[0] + t[1];
          for(int j = 0; j < 2; ++j){
            res_coord[j] = coord[j][tind[j]];
          }
        }
      }
    }

    printf("%lld\n%lld %lld\n", res, res_coord[0], res_coord[1]);    
  }
  return 0;
}