#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")