#include <iostream>
using namespace std;

constexpr int maxn = 2e5 + 10;

int n, t, i, st, dr, nr8, q, v[maxn] = {}, aib[maxn] = {};
char s[maxn] = {};

static void flip(int i){
    const int delta = v[i] == 0 ? 1 : -1;
    v[i] += delta;
    for( ; i < maxn; i += i&-i) aib[i] += delta;
}

static int query(int i){
    int ret = 0;
    for( ; i; i -= i&-i) ret += aib[i];
    return ret;
}

static int query(int st, int dr){ return query(dr) - query(st - 1); }

constexpr static long long formula(long long nr4, long long nr8){ 
    return (2 * nr4 + 2 * nr8 + 1) * (2 * nr8 + 1)
        + 2 * (2 * nr8 + 1)
        + (nr4 - 1) * (3 * nr4 + 4 * nr8 + 2);
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    
    cin >> n >> s >> q;
    for(i = 1; i <= n; ++i) if(s[i - 1] == '*') flip(i);
    while(q-- && cin >> t >> st)
        if(t == 1) flip(st);
        else cin >> dr, nr8 = query(st, dr), cout << formula(dr - st + 1 - nr8, nr8) << '\n';
}
