import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 读取判定序列字符串
        String s = scanner.next();
        int n = s.length();
        
        // 将每个字符转换为对应的dx分
        int[] scores = new int[n];
        for (int i = 0; i < n; i++) {
            char c = s.charAt(i);
            switch (c) {
                case 'P':
                    scores[i] = 3;
                    break;
                case 'p':
                    scores[i] = 2;
                    break;
                case 'G':
                    scores[i] = 1;
                    break;
                case 'g':
                case 'm':
                    scores[i] = 0;
                    break;
            }
        }
        
        // 构建前缀和数组,prefix[i]表示前i个字符的dx分总和
        long[] prefix = new long[n + 1];
        for (int i = 1; i <= n; i++) {
            prefix[i] = prefix[i - 1] + scores[i - 1];
        }
        
        // 处理查询
        int q = scanner.nextInt();
        for (int i = 0; i < q; i++) {
            int l = scanner.nextInt();
            int r = scanner.nextInt();
            // 区间[l, r]的和 = 前r个字符的和 - 前l-1个字符的和
            long sum = prefix[r] - prefix[l - 1];
            System.out.println(sum);
        }
        
        scanner.close();
    }
}