Language: C++

#include <bits/stdc++.h>
#include <vector>
#include <set>
#include <map>
#include <string>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
using namespace std;



#define f(i,a,b)        for(ll i=a;i<b;i++)
#define f0(i,n)         f(i,0,n)
#define fr(i,a,b)       for(ll i=a;i>=b;i--)
#define for1(i,n)       for(ll i=1;i<=n;i++)
#define pb              push_back
#define tc(t)           int t;cin >>t;while(t--)
#define lol             std::ios::sync_with_stdio(false); cin.tie(NULL);
#define endl            "\n"
#define mp              make_pair
#define ss              second
#define ff              first
#define ll              long long
#define int             long long
#define pii             pair< int,int >
#define pll             pair< ll,ll >
#define sz(a)           a.size()
#define inf             (1000*1000*1000+5)
#define all(a)          a.begin(),a.end()
#define arr(a,n)        int a[n];f0(i, n) cin >> a[i];
#define ini(a,n)        memset(a,n,sizeof(a))
#define printArr(a,n)   f0(i,n) cout<<a[i]<<" ";
#define in              cin>>
#define rr              return 0;
#define vint            vector< int >
#define l_b             lower_bound
#define u_b             upper_bound
#define mod             1000000007
#define pi              3.141592653589793238
#define fmap(m)         for(auto i=m.begin();i!=m.end();i++)
#define deb(x)          cout<< #x <<"=" <<x<<endl;
#define deb2(x,y)       cout<<#x<<"="<<x <<"," <<#y<<"="<<y<<endl;

void input_File()
{
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
}

///////////// FUNCTIONS//////////
//********************************************************************************************//
//*************************************************************************************************//
//*************************************************************************************************//





//***//solver function//***
int n, h,w;
int a[100001][100001];
int dp[100001][100001] ;
int maze(int i, int j)
{
    if (i >= h and j >= w)     return 0; //cross hoye gache
    if (i == n - 1 and j == m - 1)   return 1;
    if (a[i][j] == 1)   return 0; //# hole jete parbe na okhane
    if (dp[i][j] != -1)    return dp[i][j];

    return dp[i][j] = (maze(i + 1, j) % mod + maze(i, j + 1) % mod) % mod;
}

void solve()
{

    cin >> h >> w >> n ;
	int u , v;
    while(n--)
    {
      cin>>u>>v;
      a[u][v] = 1;
     }
  	
    
    

    /*f0(i, n)
    {
        f0(j, m) cout << a[i][j] << " ";
        cout << endl;
    }*/


    ini(dp, -1);
    //int dp[10001][101];
    cout << maze(0, 0);


}//solve end




/////////////////////DRIVER FUNCTION/////////////////
signed main()
{

    input_File();

    lol


    //0 mane no test case......1 mane test case ache

    int isTestCasePresent = 0 ;
    if (isTestCasePresent == 0)
    {
        int t = 1;
        while (t--)
        {
            solve();
        }
    }
    else
    {
        tc(t)
        {
            solve();


        }
    }



    rr


}


Compiler output:
a.cc: In function 'long long int maze(long long int, long long int)':
a.cc:70:29: error: 'm' was not declared in this scope
   70 |     if (i == n - 1 and j == m - 1)   return 1;
      |                             ^