#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace __gnu_pbds; using namespace std; #define inf 1013161010 #define ninf -1013161010 #define mod 1000000007 #define ll long long #define lf long double #define in(x) scanf("%d",&x); #define sz(x) ((int)x.size()) #define lld l64d #define rep(i,n) for(i=0;i=0;i--) #define rep1(i,a,b) for(i=a;i<=b;i++) #define rrep1(i,a,b) for(i=a;i>=b;i--) #define stlfor(i,t) for(auto i =t.begin();i!=t.end();i++) #define fr freopen("x.txt","r",stdin) #define frc freopen("y.txt","w",stdout) #define all(x) x.begin(),x.end() #define set0(x) memset(x,0,sizeof(x)) #define dbg cout<<"yo "< #define pll pair #define vpii vector > #define vpll vector > #define si set #define mii map #define umii unordered_map #define vi vector #define pb push_back #define ff first #define ss second #define mp make_pair typedef tree,rb_tree_tag,tree_order_statistics_node_update> OST; ll toint(const string &s) { stringstream ss; ss << s; ll x; ss >> x; return x; } string tostring ( ll number ){ stringstream ss; ss<< number; return ss.str();} const lf pi = 2*acos(0); const int nn = 2000006; const lf EPS = 0.000000001; ll gcd(ll a,ll b){return (b==0)? a:gcd(b,a%b); } void nope(int num = 0){ if(num==0) cout<<"NO"; else cout<<"-1"; exit(0); } ll a[100010][30]; ll inv[100010], f[100010]; ll fast_pow(ll a,ll m, ll mode) { if(m==0) return 1; else if(m==1) return a; ll h=fast_pow(a,m/2,mode); if(m%2==0) return ((h*h)%mode); else return ((((h*h)%mode)*a)%mode); } ll mmi(ll b, ll mode) { return fast_pow(b, mode-2, mode); } int main() { ios_base::sync_with_stdio(false); cin.tie(0); ll i,j,n,tt; tt=1; //cin>>tt; f[0]=1; f[1]=1; inv[0]=1, inv[1]=1; for(i=2;i<=100000;i++) f[i]=(f[i-1]*i)%mod; for(i=2;i<=100000;i++) inv[i]=mmi(f[i], mod); while(tt--) { string s; cin>>s; s='#'+s; int q; cin>>q; a[1][s[1]-'a']++; n = sz(s); for(i=2;i>l>>r; ll tmp[30]; set0(tmp); for(i=0;i<26;i++) tmp[i]=a[r][i]-a[l-1][i]; int cnt=0; ll ans=1; ll odd=0; for(i=0;i<26;i++) { if(tmp[i]%2==1) { odd++; } cnt+=(tmp[i]/2); } //cout<=1) ans=(ans*odd)%mod; cout<