#include <iostream>
using namespace std;
#include<vector>
//求区间和 考虑前缀和数组
int main() {
    vector<int>v_score(1e6);
    vector<int>prefix(1e6);
    string s;
    cin >> s;
    for (int i = 0; i < s.size(); i++) {
        if (s[i] == 'P') {
           v_score[i+1]=3;
        }
        else if(s[i]=='p'){
            v_score[i+1]=2;
        }
        else if(s[i]=='G'){
            v_score[i+1]=1;
        }
        else{
            v_score[i+1]=0;
        }
    }
    //创建前缀和数组
    for(int i=1;i<=s.size();i++){
         prefix[i]=prefix[i-1]+v_score[i];
    }
    int q;
    cin >> q;
    while (q--) {
        int l, r;
        cin >> l >> r;
        cout<<prefix[r]-prefix[l-1]<<endl;
    }
}
// 64 位输出请用 printf("%lld")