#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
int n ; cin>>n;
vector<char>arr(n);
for(int i = 0 ; i<n;i++) cin>>arr[i];
vector<vector<int>>prefix(n,vector<int>(26,0));
prefix[0][arr[0]-'a']++;
for(int i = 1 ; i<n;i++){
for(int j = 0 ;j<26;j++){
int e = arr[i] -'a';
prefix[i][j] = (e==j)+ prefix[i-1][j] ;
}
}
int q; cin>>q;
for(int i = 0 ; i<q;i++){
int l,r;cin>>l>>r;
int count = 0 ;
//after precomputing in O(N) for q operations it only take O(N) time at max to find count
for(int j = 0 ; j<26;j++){
int num = (l == 0) ? prefix[r][j] : prefix[r][j] - prefix[l - 1][j];
count += num * (1 + num) / 2;
}
cout<<count<<endl;
}
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCmludCBtYWluKCkgewoJaW50IG4gOyBjaW4+Pm47Cgl2ZWN0b3I8Y2hhcj5hcnIobik7Cglmb3IoaW50IGkgPSAwIDsgaTxuO2krKykgY2luPj5hcnJbaV07CgkKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj5wcmVmaXgobix2ZWN0b3I8aW50PigyNiwwKSk7CglwcmVmaXhbMF1bYXJyWzBdLSdhJ10rKzsgCiAgIAogICAgZm9yKGludCBpID0gMSA7IGk8bjtpKyspewogICAgICBmb3IoaW50IGogPSAwIDtqPDI2O2orKyl7CgkJaW50IGUgPSBhcnJbaV0gLSdhJzsKCQlwcmVmaXhbaV1bal0gPSAoZT09aikrIHByZWZpeFtpLTFdW2pdIDsKCQkgICAgICAgICAgIAl9Cgl9CglpbnQgcTsgY2luPj5xOwoJZm9yKGludCBpID0gMCA7IGk8cTtpKyspewoJCWludCBsLHI7Y2luPj5sPj5yOwoJCWludCBjb3VudCA9IDAgOyAKCS8vYWZ0ZXIgcHJlY29tcHV0aW5nIGluIE8oTikgZm9yIHEgb3BlcmF0aW9ucyBpdCBvbmx5IHRha2UgTyhOKSB0aW1lIGF0IG1heCB0byBmaW5kIGNvdW50IAoJZm9yKGludCBqID0gMCA7IGo8MjY7aisrKXsKCQlpbnQgbnVtID0gKGwgPT0gMCkgPyBwcmVmaXhbcl1bal0gOiBwcmVmaXhbcl1bal0gLSBwcmVmaXhbbCAtIDFdW2pdOwoJICAgIGNvdW50ICs9IG51bSAqICgxICsgbnVtKSAvIDI7CiAgICAgICB9CiAgICBjb3V0PDxjb3VudDw8ZW5kbDsKCX0KCQoKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCgkKCXJldHVybiAwOwp9Cgo=