#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;
    }
}