#include<iostream>
#include<cstdio>
#include<math.h>
#include<algorithm>
using namespace std;
typedef long long int ll;
int W,H;
int N;
int X[100000];
int Y[100000];
int XC[100000];
int YC[100000];
ll ans;
int ansx,ansy;
int main()
{
	scanf("%d%d",&W,&H);
	scanf("%d",&N);
	for(int i=0;i<N;i++){
		scanf("%d%d",&X[i],&Y[i]);
		XC[i]=X[i];YC[i]=Y[i];
	}
	sort(XC,XC+N);sort(YC,YC+N);
	if(N&1){
		ll ma=0;
		ansx=XC[N/2];ansy=YC[N/2];
		for(int i=0;i<N;i++){
			ans+=(ll)(abs(X[i]-ansx));
			ans+=(ll)(abs(Y[i]-ansy));
			ma=max(ma,(ll)(abs(X[i]-ansx)+abs(Y[i]-ansy)));
		}
		printf("%lld\n%d %d\n",2*ans-ma,ansx,ansy);
	}
	else{
		int ansx1=XC[N/2-1];int ansy1=YC[N/2-1];
		ll ans1=0;
		ll ma=0;
		for(int i=0;i<N;i++){
			ans1+=(ll)(abs(X[i]-ansx1));
			ans1+=(ll)(abs(Y[i]-ansy1));
			ma=max(ma,(ll)(abs(X[i]-ansx1)+abs(Y[i]-ansy1)));
		}
		ansx=ansx1;ansy=ansy1;
		ans=2*ans1-ma;
		
		ma=0;
		ans1=0;
		ansx1=XC[N/2-1];ansy1=YC[N/2];
		for(int i=0;i<N;i++){
			ans1+=(ll)(abs(X[i]-ansx1));
			ans1+=(ll)(abs(Y[i]-ansy1));
			ma=max(ma,(ll)(abs(X[i]-ansx1)+abs(Y[i]-ansy1)));
		}
		if(2*ans1-ma<ans){
			ans=2*ans1-ma;
			ansx=ansx1;ansy=ansy1;
		}
		
		ma=0;
		ans1=0;
		ansx1=XC[N/2];ansy1=YC[N/2-1];
		for(int i=0;i<N;i++){
			ans1+=(ll)(abs(X[i]-ansx1));
			ans1+=(ll)(abs(Y[i]-ansy1));
			ma=max(ma,(ll)(abs(X[i]-ansx1)+abs(Y[i]-ansy1)));
		}
		if(2*ans1-ma<ans){
			ans=2*ans1-ma;
			ansx=ansx1;ansy=ansy1;
		}
		
		ma=0;
		ans1=0;
		ansx1=XC[N/2];ansy1=YC[N/2];
		for(int i=0;i<N;i++){
			ans1+=(ll)(abs(X[i]-ansx1));
			ans1+=(ll)(abs(Y[i]-ansy1));
			ma=max(ma,(ll)(abs(X[i]-ansx1)+abs(Y[i]-ansy1)));
		}
		if(2*ans1-ma<ans){
			ans=2*ans1-ma;
			ansx=ansx1;ansy=ansy1;
		}
		printf("%lld\n%d %d\n",ans,ansx,ansy);
	}
	return 0;
}