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(); } }