#include <bits/stdc++.h>
using namespace std;
int n, m;
string s;
void solve()
{
vector<string> ask;
vector<pair<int, int>> as(m);
for (int i = 0; i < m; i++) {
string q;
cin >> q;
ask.push_back(q);
if (q == "query") cin >> as[i].first >> as[i].second;
else cin >> as[i].first;
}
int ct = 0;
while (ask[ct] == "toggle") {
int u;
u = as[ct].first;
u--;
s[u] = (s[u] == '0' ? '1' : '0');
ct++;
}
vector<int> pfs(n + 1, 0);
pfs[0] = 1;
for (int i = 1; i <= n; i++) {
pfs[i] += pfs[i - 1] + (s[i - 1] - '0');
}
for (int j = ct; j < m; j++) {
auto [u, v] = as[j];
if (pfs[v - 1] - pfs[u - 1] == v - u) cout << j - ct + 1 << '\n';
else cout << 0 << '\n';
}
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n >> m;
cin >> s;
solve();
return 0;
}
/**
11011
11011
11111
qi = sum (min(up->vp) == 1)
p<=i
5 3
11011
toggle 3
query 3 4
query 1 6
5 4
11011
query 1 2
query 1 2
query 1 6
query 3 4
*/