/*jai matad di*/ #include using namespace std; #define mod 1000000007 const int N=100004; int sum[26][N]; long long fact[N],invfact[N]; char s[N]; long long fastexp(long long b,long long p) { if(p==0) return 1; long long res=fastexp(b,p/2); if(p%2==0) return (res*res)%mod; else return (((res*b)%mod)*res)%mod; } int a[40]; int main() { scanf("%s",s+1); int i,j; int n=strlen(s+1); fact[0]=1; invfact[0]=1; for(i=1;i<=n;i++) { fact[i]=(fact[i-1]*i)%mod; invfact[i]=fastexp(fact[i],mod-2); } for(i=1;i<=n;i++) { for(j=0;j<26;j++) { sum[j][i]=sum[j][i-1]; if((s[i]-'a')==j) sum[j][i]++; } } int q; scanf("%d",&q); while(q--) { int l,r; scanf("%d %d",&l,&r); int sodd=0; int sall=0; long long ans=1; for(j=0;j<26;j++) { a[j]=sum[j][r]-sum[j][l-1]; int val=a[j]/2; ans=(ans*invfact[val])%mod; sall+=a[j]/2; sodd=sodd+(a[j]%2); } ans=(ans*fact[sall])%mod; if(sodd!=0) ans=(ans*sodd)%mod; printf("%lld\n",ans); } return 0; }