#include <bits/stdc++.h>
using namespace std;
#define ll long long
int N = 1e6 + 5;
vector<bool> primes(N, true);
bool getBit(ll num,ll idx)
{
return ((num>>idx)&1);
}
void sieve()
{
primes[0] = primes[1] = 0;
for (int i = 4; i < N; i += 2)
{
primes[i] = 0;
}
for (int i = 3; i * i < N; i += 2)
{
if (primes[i])
{
for (int j = i * i; j < N; j += i + i)
{
primes[j] = 0;
}
}
}
}
int fixMod(char a,char b,int mod)
{
return (((a-b)%mod)+mod)%mod;
}
void solve()
{
int N,Q;
string S;
cin>>N>>Q>>S;
S="@"+S;
string reff="doz";
vector<vector<ll>>prefix(3,vector<ll>(N+1));
for (int I=0;I<3;I++)
{
int counter=I;
for (int J=1;J<=N;J++)
{
prefix[I][J]=min({fixMod(S[J],reff[counter],26),fixMod(reff[counter],S[J],26)});
//cout<<fixMod(S[J],reff[counter],26)<<" "<<S[J]-'a'<<" "<<reff[counter]<<endl;
counter++;
counter%=3;
}
for (int J=1;J<=N;J++)
{
prefix[I][J]+=prefix[I][J-1];
}
}
for (int I=0;I<Q;I++)
{
int l,r;
cin>>l>>r;
if (r-l+1<3)
{
cout<<"0"<<endl;
continue;
}
int firstl=l%3,secondl=(l+1)%3,thirdl=(l+2)%3;
if (firstl==0)firstl=3;
if (secondl==0)secondl=3;
if (thirdl==0)thirdl=3;
firstl=l+(3-firstl);
secondl=l+(3-secondl);
thirdl=l+(3-thirdl);
int firstNumbers=(r-firstl+1)/3,secondNumbers=(r-secondl+1)/3,thirdNumbers=(r-thirdl+1)%3;
int firstr=firstl+(3*firstNumbers),secondr=secondl+(3*secondNumbers),thirdr=thirdl+(3*thirdNumbers);
int mx=max({firstNumbers,secondNumbers,thirdNumbers});
ll ans=0;
if ((firstr-firstl+1)/3==mx)ans=max(ans,prefix[0][firstr]-prefix[0][firstl-1]);
if ((secondr-secondl+1)/3==mx)ans=max(ans,prefix[1][secondr]-prefix[1][secondl-1]);
if ((thirdr-thirdl+1)/3==mx)ans=max(ans,prefix[2][thirdr]-prefix[2][thirdl-1]);
cout<<ans<<endl;
}
/*
ll l , r;
cin>>l>>r; l--;
ll d1 = r/5 , d2 = l/5;
ll s1 = 5 * ((d1+1)*d1/2) , s2 = 5 * ((d2+1)*d2/2);
s1-= (4 - (r%5)) * d1;
s2-= (4 - (l%5)) * d2;
cout << s1 - s2 <<"\n";
*/
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t = 1;
//cin >> t;
while (t--)
{
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwppbnQgTiA9IDFlNiArIDU7CnZlY3Rvcjxib29sPiBwcmltZXMoTiwgdHJ1ZSk7Cgpib29sIGdldEJpdChsbCBudW0sbGwgaWR4KQp7CiAgICByZXR1cm4gKChudW0+PmlkeCkmMSk7Cn0KCnZvaWQgc2lldmUoKQp7CiAgICBwcmltZXNbMF0gPSBwcmltZXNbMV0gPSAwOwogICAgZm9yIChpbnQgaSA9IDQ7IGkgPCBOOyBpICs9IDIpCiAgICB7CiAgICAgICAgcHJpbWVzW2ldID0gMDsKICAgIH0KICAgIGZvciAoaW50IGkgPSAzOyBpICogaSA8IE47IGkgKz0gMikKICAgIHsKICAgICAgICBpZiAocHJpbWVzW2ldKQogICAgICAgIHsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKiBpOyBqIDwgTjsgaiArPSBpICsgaSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbWVzW2pdID0gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQppbnQgZml4TW9kKGNoYXIgYSxjaGFyIGIsaW50IG1vZCkKewogICAgcmV0dXJuICgoKGEtYiklbW9kKSttb2QpJW1vZDsKfQoKdm9pZCBzb2x2ZSgpCnsKICAgIGludCBOLFE7CiAgICBzdHJpbmcgUzsKICAgIGNpbj4+Tj4+UT4+UzsKICAgIFM9IkAiK1M7CiAgICBzdHJpbmcgcmVmZj0iZG96IjsKICAgIHZlY3Rvcjx2ZWN0b3I8bGw+PnByZWZpeCgzLHZlY3RvcjxsbD4oTisxKSk7CiAgICBmb3IgKGludCBJPTA7STwzO0krKykKICAgIHsKICAgICAgICBpbnQgY291bnRlcj1JOwogICAgICAgIGZvciAoaW50IEo9MTtKPD1OO0orKykKICAgICAgICB7CiAgICAgICAgICAgIHByZWZpeFtJXVtKXT1taW4oe2ZpeE1vZChTW0pdLHJlZmZbY291bnRlcl0sMjYpLGZpeE1vZChyZWZmW2NvdW50ZXJdLFNbSl0sMjYpfSk7CiAgICAgICAgICAgIC8vY291dDw8Zml4TW9kKFNbSl0scmVmZltjb3VudGVyXSwyNik8PCIgIjw8U1tKXS0nYSc8PCIgIjw8cmVmZltjb3VudGVyXTw8ZW5kbDsKICAgICAgICAgICAgY291bnRlcisrOwogICAgICAgICAgICBjb3VudGVyJT0zOwogICAgICAgIH0KICAgICAgICBmb3IgKGludCBKPTE7Sjw9TjtKKyspCiAgICAgICAgewogICAgICAgICAgICBwcmVmaXhbSV1bSl0rPXByZWZpeFtJXVtKLTFdOwogICAgICAgIH0KICAgIH0KICAgIGZvciAoaW50IEk9MDtJPFE7SSsrKQogICAgewogICAgICAgIGludCBsLHI7CiAgICAgICAgY2luPj5sPj5yOwogICAgICAgIGlmIChyLWwrMTwzKQogICAgICAgIHsKICAgICAgICAgICAgY291dDw8IjAiPDxlbmRsOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaW50IGZpcnN0bD1sJTMsc2Vjb25kbD0obCsxKSUzLHRoaXJkbD0obCsyKSUzOwogICAgICAgIGlmIChmaXJzdGw9PTApZmlyc3RsPTM7CiAgICAgICAgaWYgKHNlY29uZGw9PTApc2Vjb25kbD0zOwogICAgICAgIGlmICh0aGlyZGw9PTApdGhpcmRsPTM7CiAgICAgICAgZmlyc3RsPWwrKDMtZmlyc3RsKTsKICAgICAgICBzZWNvbmRsPWwrKDMtc2Vjb25kbCk7CiAgICAgICAgdGhpcmRsPWwrKDMtdGhpcmRsKTsKICAgICAgICBpbnQgZmlyc3ROdW1iZXJzPShyLWZpcnN0bCsxKS8zLHNlY29uZE51bWJlcnM9KHItc2Vjb25kbCsxKS8zLHRoaXJkTnVtYmVycz0oci10aGlyZGwrMSklMzsKICAgICAgICBpbnQgZmlyc3RyPWZpcnN0bCsoMypmaXJzdE51bWJlcnMpLHNlY29uZHI9c2Vjb25kbCsoMypzZWNvbmROdW1iZXJzKSx0aGlyZHI9dGhpcmRsKygzKnRoaXJkTnVtYmVycyk7CiAgICAgICAgaW50IG14PW1heCh7Zmlyc3ROdW1iZXJzLHNlY29uZE51bWJlcnMsdGhpcmROdW1iZXJzfSk7CiAgICAgICAgbGwgYW5zPTA7CiAgICAgICAgaWYgKChmaXJzdHItZmlyc3RsKzEpLzM9PW14KWFucz1tYXgoYW5zLHByZWZpeFswXVtmaXJzdHJdLXByZWZpeFswXVtmaXJzdGwtMV0pOwogICAgICAgIGlmICgoc2Vjb25kci1zZWNvbmRsKzEpLzM9PW14KWFucz1tYXgoYW5zLHByZWZpeFsxXVtzZWNvbmRyXS1wcmVmaXhbMV1bc2Vjb25kbC0xXSk7CiAgICAgICAgaWYgKCh0aGlyZHItdGhpcmRsKzEpLzM9PW14KWFucz1tYXgoYW5zLHByZWZpeFsyXVt0aGlyZHJdLXByZWZpeFsyXVt0aGlyZGwtMV0pOwogICAgICAgIGNvdXQ8PGFuczw8ZW5kbDsKICAgIH0KICAgIC8qCiAgICBsbCBsICwgcjsKICAgIGNpbj4+bD4+cjsgbC0tOwoKICAgIGxsIGQxID0gci81ICwgZDIgPSBsLzU7CiAgICBsbCBzMSA9IDUgKiAoKGQxKzEpKmQxLzIpICwgczIgPSA1ICogKChkMisxKSpkMi8yKTsKICAgIHMxLT0gKDQgLSAociU1KSkgKiBkMTsKICAgIHMyLT0gKDQgLSAobCU1KSkgKiBkMjsKICAgIGNvdXQgPDwgczEgLSBzMiA8PCJcbiI7CiAgICAqLwp9CgppbnQgbWFpbigpCnsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwoKICAgIGludCB0ID0gMTsKICAgIC8vY2luID4+IHQ7CgogICAgd2hpbGUgKHQtLSkKICAgIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0K