import bisect import sys readline=sys.stdin.readline def LIS(lst,weakly=False,max_value=float('inf')): f=bisect.bisect_right if weakly else bisect.bisect_left dp=[max_value]*(min(N,M)+1) for x in lst: i=f(dp,x) dp[i]=x n=bisect.bisect_left(dp,max_value) return n N,M,Q=map(int,readline().split()) AB=[[0]*M for i in range(N)] for _ in range(Q): a,b=map(int,readline().split()) a-=1 b-=1 AB[a][b]=1 lst=[] for a in range(N): for b in range(M-1,-1,-1): if AB[a][b]: lst.append(b) inf=1<<30 ans=LIS(lst,max_value=inf) print(ans)