/* ****Enigma27**** */ #include #define ll long long #define pb push_back #define endl '\n' #define pll pair #define vll vector #define all(a) (a).begin(),(a).end() #define x first #define y second #define hell 1000000007 #define lbnd lower_bound #define ubnd upper_bound #define bs binary_search #define rep(i,a,b) for(ll i=a;ia>= 1; } return ans%mod; } ll inv(ll x){ return expo(x,hell-2,hell); } int main() { //ios memset(a,0,sizeof a); fact[0]=1; for(i=1;i>s; n=s.size(); for(i=0;i>q; while(q--){ ll odd=0,total=0; vll v; cin>>l>>r; for(i=0;i<26;i++){ ll k=(a[i][r]-a[i][l-1]); if(k&1) odd++,k--; total+=k/2; if(k/2) v.pb(k/2); } if(odd==0) odd=1; ll ans=fact[total]; ans=(ans*odd)%hell; for(auto j:v) ans=(ans*inv(fact[j]))%hell; v.clear(); cout<