import sys input = sys.stdin.readline import bisect n,m,q = map(int,input().split()) ab = [list(map(int,input().split())) for _ in range(q)] ab.sort(key=lambda x:(x[0],-x[1])) 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 res=bisect.bisect_left(dp,max_value) return res inf=1<<30 bl = [b for a,b in ab] ans=LIS(bl,max_value=inf) print(ans)