#include <bits/stdc++.h>
#define pii pair<int, int>
#define fi first
#define se second
using namespace std;
const int N = 1e5 + 5;
int n, q, last[2], ans[N];
int fen[N], nxt[N];
vector<pii> Q[N];
stack<int> st[2];
void update(int x, int val){
for (; x <= n; x += x & -x)
fen[x] += val;
}
int get(int x){
int res = 0;
for (; x > 0; x -= x & -x)
res += fen[x];
return res;
}
int main(){
ios_base::sync_with_stdio(0); cin.tie(0);
cin >> n >> q;
for (int i = 1, t; i <= n; ++i){
char x; cin >> x;
t = (x == 'P' ? 0 : 1);
st[t].push(i); t ^= 1;
if (!st[t].empty())
nxt[st[t].top()] = i, st[t].pop();
}
for (int i = 1, l, r; i <= q; ++i){
cin >> l >> r;
Q[l].push_back({r, i});
}
for (int i = n; i > 0; --i){
if (nxt[i])
update(nxt[i], -1);
update(i, 1);
for (pii x: Q[i])
ans[x.second] = get(x.first);
}
for (int i = 1; i <= q; ++i) cout << ans[i] << "\n";
}