local read = io.read
local insert = table.insert

local h, w, m = read("n", "n", "n")
local grid_t = {}
for i = 1, h do
	grid_t[i] = {}
end

local sum_h_t, sum_w_t = {}, {}
for i = 1, m do
	local hs = read("n")
	local ws = read("n")
	grid_t[hs][ws] = true
	sum_h_t[hs] = sum_h_t[hs] and sum_h_t[hs] + 1 or 1
	sum_w_t[ws] = sum_w_t[ws] and sum_w_t[ws] + 1 or 1
end

local max_h, max_w = 0, 0
local max_h_index_t, max_w_index_t
for i = 1, w do
	if sum_h_t[i] and sum_h_t[i] > max_h then
		max_h = sum_h_t[i]
		max_h_index_t = {i}
	elseif sum_h_t[i] and sum_h_t[i] == max_h then
		insert(max_h_index_t, i)
	end
end
for i = 1, h do
	if sum_w_t[i] and sum_w_t[i] > max_w then
		max_w = sum_w_t[i]
		max_w_index_t = {i}
	elseif sum_w_t[i] and sum_w_t[i] == max_w then
		insert(max_w_index_t, i)
	end
end

local is_dup = true
for i = 1, #max_h_index_t do
	for j = 1, #max_w_index_t do
		if grid_t[max_h_index_t[i]][max_w_index_t[j]] == nil then
			is_dup = false
			break
		end
	end
	if not is_dup then
		break
	end
end

print(is_dup and max_h + max_w - 1 or max_h + max_w)
