CSES - Shared codeLink to this code:
https://cses.fi/paste/8dd075f80cfd540b1a760b/
#include<iostream>
#include <bits/stdc++.h>
using namespace std;
#define mod 1000000007
long long power(long long x,long long y){
if(y==0){
return 1;
}
long long p=power(x,y/2);
p=p*p%mod;
return (y%2==0)?p:(p*x)%mod;
}
long long inverse(long long n){
long long ans=power(n,mod-2);
return ans%mod;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
long long n,m;
cin>>n>>m;
long long fact[1000000+1];
fact[0]=1;
fact[1]=1;
for(int i=2;i<=1000000;i++){
fact[i]=i*fact[i-1]%mod;
fact[i]=fact[i]%mod;
}
long long ans=fact[n+m-1]%mod;
ans*=inverse(fact[m]);
ans%=mod;
ans*=inverse(fact[n-1]);
ans=ans%mod;
cout<<ans<<"\n";
return 0;
}