#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); #define rd(v) long v=0;{long _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} #define wt(v) {long _z=v;do*--wp=_z%10+48;while(_z/=10);} #define rep(v,e) for(long v=0;v=a?v:a) short d[1001][1001]; void f11(char*rp,long n,long m){ rd(q); rep(i,q){ rd(a); rd(b); d[a][b]=1; } } long f12(){ rep(x,1000){ rep(y,1000){ long t=d[x][y]+d[x+1][y+1]; chmax(t,d[x][y+1]); chmax(t,d[x+1][y]); d[x+1][y+1]=t; } } } long f1(){ char*rp=mmap(0l,1l<<25,1,2,0,0ll); rd(n); rd(m); f11(rp,n,m); f12(); return d[n][m]; } void f2(long z){ char wbuf[64],*wp=wbuf+sizeof wbuf; wt(z); write(1,wp,wbuf+sizeof wbuf-wp); _exit(0); } main(){ f2(f1()); }