don’t know why i am getting 0 ans everytime
#include<bits/stdc++.h>
using namespace std;
#define MOD 1000000007
int dp[1001][100];
int numWays(int Ro,int Col){
//Base case
if(dp[0][0]==-1){
return 0;
}
//compute the no of ways for first row
for(int i=0;i<Col;i++){
if(dp[0][i]==-1){
break;
}
dp[0][i]=1;
}
//compute the no of ways for first col
for(int i=0;i<Ro;i++){
if(dp[i][0]==-1){
break;
}
dp[i][0]=1;
}
//Bottom up approach for rest of the matrix
for(int i=1;i<Ro;i++){
for(int j=1;j<Col;j++){
//if the cell is blocked leave it
if(dp[i][j]=-1){
continue;
}
dp[i][j]=0;
if(dp[i][j-1]!=-1){
dp[i][j]=dp[i][j-1]%MOD;
}
if(dp[i-1][j]!=-1){
dp[i][j]=(dp[i][j] + dp[i-1][j])%MOD;
}
}
}
if(dp[Ro-1][Col-1]==-1){
return 0;
}
return dp[Ro-1][Col-1];
}
int main()
{
memset(dp,0,sizeof dp);
int m,n,d;
cin>>m>>n>>d;
for(int i=0;i<d;i++){
int p,q;
cin>>p>>q;
dp[p-1][q-1]=-1;//blocked box in grid
}
cout<<numWays(m,n);
}