from bisect import bisect from sys import stdin def main(): readline = stdin.readline # N: 数列の長さ # A[i]: a_i の値 def solve(N, A): INF = 10**10 dp = [INF]*(N+1) dp[0] = -1 for a in A: idx = bisect(dp, a-1) dp[idx] = min(a, dp[idx]) return max(i for i in range(N+1) if dp[i] < INF) N,M,Q = map(int, readline().split()) WH = [] for i in range(Q): WH.append(list(map(int,readline().split()))) WH = sorted(WH,reverse=True,key=lambda x:x[1]) WH = sorted(WH,key=lambda x:x[0]) H = [] for w,h in WH: H.append(h) print(solve(N,H)) main()