#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define all(a) begin(a),end(a)
using vi = vector<int>;
using ll = long long;

const int mxN = (int)1e5;
const int B = 300;

vi v;
string s;
int n, q; 
ll sum, ans[mxN];
int l[mxN], r[mxN], a[mxN], cnt[1<<26];

void add(int i){
    for(auto u : v) sum+=cnt[a[i]^u];
    cnt[a[i]]++;
}

void rem(int i){
    cnt[a[i]]--;
    for(auto u : v) sum-=cnt[a[i]^u];
}

int main(){
    ios_base::sync_with_stdio(false); cin.tie(0);
    cin >> n >> q >> s;
    for(int i = 0; i < n; i++)
        a[i+1]=a[i]^(1<<(s[i]-'a'));
    v.pb(0); 
    for(int i = 0; i < 26; i++) v.pb(1<<i);
    for(int i = 0; i < q; i++) 
        cin >> l[i] >> r[i], l[i]--;
    vi ord(q,0); iota(all(ord),0);
    sort(all(ord),[&](int i, int j){
        if(l[i]/B!=l[j]/B) return l[i]<l[j];
        return (l[i]/B)%2?r[i]>r[j]:r[i]<r[j];
    });
    int L = 0, R = -1;
    for(auto i : ord){
        while(L>l[i]) add(--L);
        while(R<r[i]) add(++R);
        while(L<l[i]) rem(L++);
        while(R>r[i]) rem(R--);
        ans[i] = sum;
    }
    for(int i = 0; i < q; i++) cout << ans[i] << "\n";
}