#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
#define int long long
#define vel vector<long long>
#define vvel vector<vel>
#define vvvel vector<vvel>
void mmin(int &a, int b) { a = min(a, b); }
void mmax(int &a, int b) { a = max(a, b); }
void sor(vel &v) { sort(v.begin(), v.end()); }
int dis(int x1, int y1, vel &x, vel &y, int i) {
	return abs(x1 - x[i]) + abs(y1 - y[i]);
}
signed main() {
	int w, h; cin >> w >> h;
	int n; cin >> n;
	vel x(n);
	vel y(n);
	for (int i = 0; i < n; i++) {
		cin >> x[i] >> y[i];
		x[i]--;y[i]--;
	}
	vel mx = x;
	vel my = y;
	sor(mx);
	sor(my);
	if (n % 2 == 1) {
		int ans = 0;
		int ma1 = 0;
		int mid = (n - 1) / 2;
		int x1 = mx[mid];
		int y1 = my[mid];
		for (int i = 0; i < n; i++) {
			int di = abs(x1 - x[i]) + abs(y1 - y[i]);
			ans += di;
			mmax(ma1,di);
		}
		cout << 2 * ans - ma1 << endl;
		cout << x1+1 << " " << y1+1 << endl;
	}
	else {
		vel mid(2);
		mid[1] = n / 2;
		mid[0] = mid[1]-1;
		vel ax(2);
		vel ay(2);
		for (int i = 0; i < 2; i++) {
			ax[i] = mx[mid[i]];
			ay[i] = my[mid[i]];
		}
		int adi = 0;
		int ami = 0;
		int axy = h*w;
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < 2; j++) {
				for (int k = 0; k < 2; k++) {
					int mi1 = dis(ax[j], ay[k], x, y, i);
					if (j*k == 1) {
						adi += mi1;
					}
					if (ami < mi1) {
						ami = mi1;
						axy = ax[j] * w + ay[k];
					}
					if (ami == mi1) {
						mmin(axy, ax[j] * w + ay[k]);
					}
				}
			}
		}
		cout << 2 * adi - ami << endl;
		cout << (axy / w) + 1 << " " << (axy%w) + 1 << endl;
	}
	return 0;
}
