#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define MOD 1000000007
#define M(x) (x%MOD + MOD)%MOD
#define _pb push_back
#define _mp make_pair
#define ff first
#define ss second
#define s(x) scanf("%lld",&x)

ll mul(ll x,ll y)
{ ll ans=1;

  while(y>0)
  { if(y&1)
	ans=(ans*x)%MOD;
	y/=2;
	x=(x*x)%MOD;
  }
  
  return ans;
};

/**********************************************/

ll a[100009][28],f[1000009];

int main()
{ 
  string str;
  cin>>str;
  ll i,j;
  
  f[0] = 1;
  
  for(i=1;i<=1000000;i++)
  f[i] = (f[i-1]*i)%MOD;
  
  for(i=1;i<=str.size();i++)
  {
  	 for(j=0;j<26;j++)
  	 a[i][j] = a[i-1][j];
	   
	 ++a[i][str[i-1]-'a'];   
  }	
  
  ll l,r,ans,q,len,cof,mid;
  
  cin>>q;
  
  while(q--)
  {
  	cin>>l>>r; 
  	len = 0;
  	cof = 0;
	ans = 1;
	
	for(j=0;j<26;j++)  	
  	{ mid = a[r][j] - a[l-1][j];
  	  
	  if(mid&1)
	  ++cof;
	  
	  len+=mid/2;
	  ans = (ans*mul(f[mid/2],MOD-2))%MOD;	  
	}
	
	ans = (ans*f[len])%MOD;
	
	if(cof>0)
	ans = (ans*cof)%MOD;
	cout<<ans%MOD<<"\n";
  }
  
  return 0;
}