乱搞题…
一定是先走长再走短,两条边。为什么?因为自信;
打表发现C像组合数…然后就乱搞了…
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=(1e9)+7;
ll qpow(ll a,ll b){ll ans=1,aa=a;for(;b;b>>=1){if(b&1)ans=ans*aa%mod;aa=aa*aa%mod;}return ans;}
ll n,m,Ans=0;
int main(){
scanf("%lld%lld",&n,&m);if(n>m)swap(n,m);
m%=mod;
Ans+=m+1;ll x=1;
for(int i=1;i<=n;i++){x=x*(m+i)%mod;x=x*qpow(i,mod-2)%mod;Ans=(Ans+x)%mod;
}printf("%lld\n",Ans);
}