#include #include #include using namespace std; using ll = long long; ll modpow(ll a, ll b, ll p){ a%=p; ll ans=1; while(b>0){ if(b%2==1) ans=(ans*a)%p; b/=2; a=(a*a)%p; } return ans; } pair, vector> factorial(int n, ll mod){ vector fact(n+1, 1), invfact(n+1, 1); for(ll i=2; i<=n; i++) fact[i]=fact[i-1]*i%mod; invfact[n]=modpow(fact[n], mod-2, mod); for(ll i=n-1; i>=1; i--) invfact[i]=invfact[i+1]*(i+1)%mod; return {fact, invfact}; } pair f(string& s){ int n=s.size(); int co; for(int i=0; i> q; ll mod=1e9+7; auto [fact, inv]=factorial(2e6+1, mod); auto nCk=[&](int n, int k){ if(k>n||n<0) return 0ll; return fact[n]*inv[k]%mod*inv[n-k]%mod; }; while(q--){ string s; cin >> s; int t; if(s[0]=='P') t=0; else t=(s[0]=='C'?1:2); int l, r; for(int i=0; i