// I SELL YOU...! #include #include #include #include #include #include #include #include #include #define MOD 1000000007 using namespace std; using ll = long long; using P = pair; void init_io(){ cin.tie(0); ios::sync_with_stdio(false); cout << setprecision(10); } signed main(){ init_io(); ll n,p,ans=0; cin >> n >> p; vector a(n+1),sum(n+2); a[0] = 0; a[1] = 1; sum[0] = 0; sum[1] = 1; for(int i=2;i<=n;i++){ a[i] = p*a[i-1] + a[i-2]; a[i] %= MOD; sum[i] = sum[i-1] + a[i]; sum[i] %= MOD; } for(int i=n-1;i>=0;i--){ ans += (sum[i]*a[i])%MOD; ans %= MOD; } cout << ans << endl; }