from bisect import bisect_left def lis(a: list) -> list: 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] 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(len(res))