from bisect import bisect_left import sys input = sys.stdin.readline def lis(a: list) -> int: n = len(a) ranks = [0] * n # ranks[i] : A[i] が LIS の何番目か dp = [INF] * n for i in range(n): ranks[i] = bisect_left(dp, a[i]) dp[ranks[i]] = a[i] return max(ranks)+1 # p = max(ranks) # res = [None] * (p+1) # for i in reversed(range(n)): # if ranks[i] == p: # res[p] = a[i] # p -= 1 # # return res INF = 1 << 62 N, M, Q = map(int, input().split()) xs = [] for i in range(Q): A, B = map(lambda x: int(x)-1, input().split()) xs.append((A, B)) seq = [b for _, b in sorted(xs, key=lambda x: (x[0], -x[1]))] res = lis(seq) print(res)