#include using namespace std; const int nmax=2e5+42,mod=1e9+7; int n,m,k; pair inp[nmax]; pair dp[nmax]; long long fact[nmax],inv[nmax]; long long my_pow(long long a,int b) { long long ret=1; while(b) { if(b%2)ret=ret*a%mod; b=b/2; a=a*a%mod; } return ret; } long long C(int p,int q) { long long ret=fact[p]; ret=ret*inv[q]%mod; ret=ret*inv[p-q]%mod; return ret; } void solve() { scanf("%i%i%i",&n,&m,&k); for(int i=1;i<=k;i++) scanf("%i%i",&inp[i].first,&inp[i].second); sort(inp+1,inp+k+1); for(int i=1;i<=k;i++)dp[i]={0,0}; dp[1]={1,1}; for(int i=2;i<=k;i++) for(int j=1;j cur={dp[j].first+1,ways}; if(dp[i].first