// warm heart, wagging tail,and a smile just for you!
//                                    ▓▓▓▓▓▓▓▓▓▓▓▓
//                            ▓▓▓▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓▓▓▓▓▓▓▓▓
//                        ▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓
//                    ▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//              ▓▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//            ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//          ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//        ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//      ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//   ▓▓▓╬╬╬╬╬╬╬╬╬╬▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//▓▓▓▓╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//╬╬╬╬╬╬╬▓▓╬╬╬╬╬▓▓▓▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▒▒▒▒▒▒╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓
//╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▒▒▒▒▒▒╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓
//╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓╬╬▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓
//╬╬╬╬╬╬▓▓╬▒▒▒▒▒▒╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓
//╬╬╬╬╬╬▓▓╬▒▒▒▒▒▒╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓   ▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓
//╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓      ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓
//╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓           ▓▓▓╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓
//╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓               ▓▓▓▓╬╬╬╬╬╬╬╬▓▓▓
//╬╬╬╬╬╬╬╬╬▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬▓▓▓▓╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓                     ▓▓▓▓╬╬╬╬▓▓▓
//╬╬╬╬╬╬▓▓      ▓▓▓▓╬╬╬╬▓▓╬╬╬╬▓▓╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬▓▓╬╬▓▓▓▓▓▓▓▓                            ▓▓▓▓▓▓
//╬╬╬╬▓▓            ▓▓▓▓╬╬╬╬╬╬▓▓▓▓▓▓▓▓▓▓╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬▓▓  ▓▓▓▓▓▓▓▓▓▓▓▓
//▓▓▓▓                ▓▓╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//                    ▓▓╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓
//                    ▓▓╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓
//                    ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓
//                    ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓
//                    ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬▓▓╬╬╬╬╬╬╬╬▓▓
//                   ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬▓▓╬╬╬╬╬╬╬╬▓▓
//                  ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╬╬▓▓╬╬╬╬╬╬╬╬╬╬▓▓
//                  ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓╬╬╬╬╬╬╬╬╬╬▓▓
//                  ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬╬╬▓▓
//                  ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╬╬╬╬╬╬╬╬╬╬▓▓▓▓
//                    ▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓▓▓▓▓▓▓▓▓▓▓▓▓
//                    ▓▓▓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓
#include "bits/stdc++.h"
using namespace std;
#define MOD 1000000007
#define INF 1LL<<60
#define fs first
#define sc second
#define pb push_back
#define int long long
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define RFOR(i,a,b) for(int i = (b-1);i>=a;i--)
#define REP(i,n)  FOR(i,0,n)
#define RREP(i,n) RFOR(i,0,n)
#define ITR(itr,mp) for(auto itr = (mp).begin(); itr != (mp).end(); ++itr)
#define RITR(itr,mp) for(auto itr = (mp).rbegin(); itr != (mp).rend(); ++itr)
#define debug(x)  cout << #x << " = " << (x) << endl;
typedef pair<int,int> P;
typedef vector<vector<P>> Graph;

signed main(){
  ios::sync_with_stdio(false);
  cin.tie(0);  

  int n;
  string s;
  cin >> n >> s;

  int q;
  cin >> q;
  vector<int> k(q);
  REP(i,q) cin >> k[i];
  
  vector<int> M(n+1,0),C(n+1,0);
  REP(i,n){
    M[i+1] = M[i];
    C[i+1] = C[i];
    if(s[i] == 'M') M[i+1]++;
    if(s[i] == 'C') C[i+1]++;
  }

    
  // REP(i,q){
  //   int ans = 0;
  //   REP(j,n){
  //     if(s[j] == 'D'){
  //       ans += MC[min(j+k[i],n)] - MC[j+1];
  //     }
  //   }
  //   cout<< ans << endl;
  // }

  vector<int> MC(n+1,0);
  int cnt = 0;
  REP(i,n){
    MC[i+1] = MC[i];
    if(s[i] == 'M') cnt++;
    if(s[i] == 'C') MC[i+1] += cnt;
  }

  //REP(i,n+1) debug(MC[i]);
  
  REP(i,q){
    int ans = 0;
    REP(j,n){
      if(s[j] == 'D'){
        ans += MC[min(j+k[i],n)]-MC[j]- (M[j]*(C[min(j+k[i],n)]-C[j]));
      }
    }
    cout<< ans << endl;
  }

  return 0;
}

Measured memory_bytes: 26908