#include #define fio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0) using namespace std; typedef long long int lli; const int MM = 120000; lli m,n,k,p1,p2,p3,p,f,a[MM]; string s,s1,s2; int cnt[MM][26]; const lli mod = 1e9 + 7; lli powmod(lli a1,lli b1,lli modx = mod) {lli res=1; a1%=modx; for(;b1;b1>>=1) {if(b1&1)res=res*a1%modx; a1=(a1*a1)%modx;}return res;} lli inv(lli ax,lli modx = mod) { return powmod(ax,modx-2,modx); } lli fac[MM], ifac[MM]; void preFac(lli modx = mod) { fac[0] = 1; ifac[0] = 1; for(int i=1; i=0) return ((fac[N] * ifac[R])%modx * ifac[N-R])%modx; else return 0; } int main(){fio; // remove during scanf cin >> s; preFac(); for(int i=0; i> m; int tem[26]; while(m--) { int l, r; cin >> l >> r; lli del = 0; lli len = 0; for(int i=0; i<26; i++) { tem[i] = cnt[r][i] - cnt[l-1][i]; del += tem[i]%2; len += tem[i]/2; } if(del == 0) del = 1; lli ans = (del * fac[len])%mod; for(int i=0; i<26; i++) { ans = (ans * ifac[tem[i]/2])%mod; } cout << ans << '\n'; } return 0; }