#include using namespace std; const long long md=1e9+7; string s; int dp[100005][26]; long long f[100006]; long long fp[100006]; int kol[27]; inline long long pw(long long x,long long y){ long long res=1; while (y) { if (y&1) res=(res*x)%md; x=(x*x)%md; y>>=1; } return res; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>s; for (int i=1;i<=s.size();++i) { for (int j=0;j<26;++j) dp[i][j]=dp[i-1][j]; ++dp[i][s[i-1]-'a']; } f[0]=1; fp[0]=1; for (int i=1;i<=1e5+5;++i) f[i]=(f[i-1]*1ll*i)%md; for (int i=1;i<=1e5+5;++i) fp[i]=pw(f[i],md-2); int n; cin>>n; while (n--) { int l,r; cin>>l>>r; bool t=false; for (int i=0;i<26;++i) { kol[i]=dp[r][i]-dp[l-1][i]; if (kol[i]&1) t=true; } long long res=1; int len=0; for (int i=0;i<26;++i) if (kol[i]) { int z=(kol[i]>>1); len+=z; } res=f[len]; int kk=0; for (int i=0;i<26;++i) if (kol[i]) { int z=(kol[i]>>1); res=(res*fp[z])%md; kol[i]%=2; kk+=kol[i]; } if (kk) res=(res*1ll*kk)%md; cout<