#include <bits/stdc++.h> using namespace std; #define lli long long int #define REP(i,s,n) for(int i=s;i<n;i++) #define MOD 1000000007 #define NUM 2520 #define INF (1LL<<50) #define DEBUG 0 #define mp(a,b) make_pair(a,b) #define SORT(V) sort(V.begin(),V.end()) #define PI (3.141592653589794) lli a[2001000]; lli sum[2001000]; signed main(){ lli n,p; cin>>n>>p; a[0]=0; sum[0]=0; a[1]=1; sum[1]=1; REP(i,2,2001000){ a[i]=(p*a[i-1]+a[i-2])%MOD; sum[i] = (sum[i-1]+a[i])%MOD; } lli ans=0; REP(i,0,n){ ans += (a[i]*sum[i])%MOD; ans%=MOD; } cout<<ans<<endl; return 0; }