#include <iostream>
#include <algorithm>    // std::lower_bound, std::upper_bound, std::sort
#include <vector>
#include <bits/stdc++.h>
using namespace std;

int main()
{
    string s;
    long int q;
    long int l,r;
    cin >> s;

    long int n = s.length();
    vector <long int> ans;

        long int j = 1;
        long int k = 0;

        ans.push_back(1);
        while (j<=n)
        {
            while ((j<=n))
            {
                if (s[j-1]<=s[j])
                j++;
                else
                    break;
            }

             k++;
             j++;
             if (j<=n)
             ans.push_back(j);

        }

       // cout << k << endl;

       // for (long int i=1;i<=ans.size();i++)
        //    cout << ans[i-1] << " ";

    cin >> q;



    for (long int i=1;i<=q;i++)
    {
        cin >> l >> r;

        vector<long int>::iterator a1,a2;
        a1=lower_bound (ans.begin(), ans.end(), l);
        a2=lower_bound (ans.begin(), ans.end(), r);
        //cout << ans.size() << endl;
        if (a2-ans.begin()+1 > ans.size())
        a2--;
        if (a1-ans.begin()+1 > ans.size())
        a1--;

        //cout << a1-ans.begin() << " " << a2-ans.begin() << endl;

        long int kol =  (a2-ans.begin()) - ( a1-ans.begin()) + 1;

        if (ans[a1-ans.begin()] > l)
            kol++;

        if (ans[a2-ans.begin()] > r)
            kol-=1;
        cout << kol << endl;
       // cout << endl;
    }
}
//abbbcabaaabac
//abcbaccb
