#include <bits/stdc++.h> using namespace std; typedef long long int ll; const int N=1e6+10; vector<ll> f(N,1), inf(N,1); ll mod=1e9+7; ll inv_mod(ll a, ll b){ ll x=0, y=1, r, q, ta=a; while(b){ r=a%b; q=a/b; a=b; b=r; r=x; x=y; y=r-q*y; } x+=ta; return x%ta; } int main(){ for(int i=1; i<N; i++){ f[i]=f[i-1]*i%mod; inf[i]=inf[i-1]*inv_mod(mod,i)%mod; } int n; string str; cin>>str; n = str.length(); vector<vector<int>> a(n+1,vector<int>(26,0)); vector<int> cnt(26,0); for(int i=0; i<n; i++){ cnt[str[i]-'a']++; a[i+1]=cnt; } int q; cin>>q; while(q--){ int l,r; cin>>l>>r; vector<int> tmp(26,0); for(int i=0; i<26; i++) tmp[i]=a[r][i]-a[l-1][i]; int ln=0, p=0; for(int i=0; i<26; i++){ ln+=(tmp[i]>>1); p+=(tmp[i]&1); } ll ans=f[ln]; for(int i=0; i<26; i++){ ans=ans*inf[tmp[i]>>1]%mod; } if(p) ans=ans*p%mod; cout<<ans<<endl; } }