#include <bits/stdc++.h>
using namespace std;
long long maxn = 1e9;
long long minn = 1e18;
long long mod = 1e9 + 7;
const int maxx = 1e6 + 5;
struct viet {
  long long c4, c7, c47, c74;
  bool flag = false;
};
viet st[maxx * 4];
void init(long long k, long long l, long long r, long long x, long long v) {
  if (x < l || x > r) return;
  if (l == r) {
    if (v == 4) {
      st[k].c4 = 1;
      st[k].c47 = 1;
      st[k].c74 = 1;
      st[k].c7 = 0;
    } else {
      st[k].c4 = 0;
      st[k].c47 = 1;
      st[k].c74 = 1;
      st[k].c7 = 1;
    }
    return;
  }
  long long mid = (l + r) >> 1;
  init(k * 2, l, mid, x, v);
  init(k * 2 + 1, mid + 1, r, x, v);
  st[k].c4 = st[k * 2].c4 + st[k * 2 + 1].c4;
  st[k].c7 = st[k * 2].c7 + st[k * 2 + 1].c7;
  st[k].c47 =
      max(st[k * 2].c4 + st[k * 2 + 1].c47, st[k * 2].c47 + st[k * 2 + 1].c7);
  st[k].c74 =
      max(st[k * 2].c7 + st[k * 2 + 1].c74, st[k * 2].c74 + st[k * 2 + 1].c4);
}
void upd(long long k, long long l, long long r, long long x, long long y) {
  if (y < l || x > r) return;
  if (x <= l && y >= r) {
    swap(st[k].c4, st[k].c7);
    swap(st[k].c47, st[k].c74);
    st[k].flag ^= 1;
    return;
  }
  if (st[k].flag == true && l != r) {
    swap(st[k * 2].c47, st[k * 2].c74);
    swap(st[k * 2 + 1].c47, st[k * 2 + 1].c74);
    swap(st[k * 2].c4, st[k * 2].c7);
    swap(st[k * 2 + 1].c4, st[k * 2 + 1].c7);
    st[k * 2].flag ^= 1;
    st[k * 2 + 1].flag ^= 1;
    st[k].flag = false;
  }
  long long mid = (l + r) >> 1;
  upd(k * 2, l, mid, x, y);
  upd(k * 2 + 1, mid + 1, r, x, y);
  if (st[k].flag == true && l != r) {
    swap(st[k * 2].c47, st[k * 2].c74);
    swap(st[k * 2 + 1].c47, st[k * 2 + 1].c74);
    swap(st[k * 2].c4, st[k * 2].c7);
    swap(st[k * 2 + 1].c4, st[k * 2 + 1].c7);
    st[k * 2].flag ^= 1;
    st[k * 2 + 1].flag ^= 1;
    st[k].flag = false;
  }
  st[k].c4 = st[k * 2].c4 + st[k * 2 + 1].c4;
  st[k].c7 = st[k * 2].c7 + st[k * 2 + 1].c7;
  st[k].c47 =
      max(st[k * 2].c4 + st[k * 2 + 1].c47, st[k * 2].c47 + st[k * 2 + 1].c7);
  st[k].c74 =
      max(st[k * 2].c7 + st[k * 2 + 1].c74, st[k * 2].c74 + st[k * 2 + 1].c4);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n, m;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    char c;
    cin >> c;
    if (c == '4') init(1, 1, n, i, 4);
    if (c == '7') init(1, 1, n, i, 7);
  }
  for (int i = 1; i <= m; i++) {
    string s;
    cin >> s;
    if (s == "count") {
      cout << st[1].c47 << '\n';
    }
    if (s == "switch") {
      long long l, r;
      cin >> l >> r;
      upd(1, 1, n, l, r);
    }
  }
}
