from bisect import bisect from sys import stdin def solve(N, A): INF = 10**5 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) def main(): readline = stdin.readline N,M,Q = map(int, readline().split()) WH = [] for _ in range(Q): WH.append(list(map(int,readline().split()))) WH = sorted(WH,key=lambda x:(x[0],-x[1])) H = [] for _,h in WH: H.append(h) print(solve(N,H)) main()