#include <bits/stdc++.h>
using namespace std;
char str[400005];
char cmd[3];
struct Seg {
  int l, r;
  bool operator<(const Seg& other) const { return l < other.l; }
};
set<Seg> ss;
int cas = 0;
void print() {
  Seg tmp;
  set<Seg>::iterator it;
  puts("");
  for (it = ss.begin(); it != ss.end(); it++) {
    tmp = *it;
    printf("cas = %d,tmp.l = %d,tmp.r = %d\n", cas, tmp.l, tmp.r);
  }
}
int main() {
  int n, m;
  int pos;
  while (cin >> n >> m) {
    ss.clear();
    str[0] = 'a';
    scanf("%s", str + 1);
    bool flag = 0;
    Seg tmp, tmp2;
    for (int i = 1; i <= n; i++) {
      if (str[i] == '.') {
        if (!flag) {
          tmp.l = i;
          tmp.r = i;
          flag = 1;
          if (str[i + 1] != '.') {
            ss.insert(tmp);
          }
        } else {
          tmp.r++;
          if (str[i + 1] != '.') {
            ss.insert(tmp);
          }
        }
      } else {
        flag = 0;
      }
    }
    set<Seg>::iterator it, it2;
    long long tot = 0;
    for (it = ss.begin(); it != ss.end(); it++) {
      tmp = *it;
      tot += (tmp.r - tmp.l);
    }
    while (m--) {
      cas = 0;
      cas++;
      scanf("%d %s", &pos, cmd);
      char c = cmd[0];
      tmp.l = pos;
      tmp.r = pos;
      it = ss.upper_bound(tmp);
      tmp = *it;
      if (ss.size() == 0 || it == ss.begin()) {
        if (c == '.' && str[pos + 1] == '.') {
          tmp.l--;
          ss.erase(it);
          ss.insert(tmp);
          tot++;
        } else if (c == '.') {
          tmp.l = pos;
          tmp.r = pos;
          ss.insert(tmp);
        }
      } else {
        it--;
        tmp = *it;
        if (tmp.r >= pos && tmp.l <= pos) {
          if (c != '.') {
            ss.erase(it);
            tot -= tmp.r - tmp.l;
            tmp2.l = tmp.l;
            tmp2.r = pos - 1;
            if (tmp2.l <= tmp2.r) {
              ss.insert(tmp2);
              tot += tmp2.r - tmp2.l;
            }
            tmp2.l = pos + 1;
            tmp2.r = tmp.r;
            if (tmp2.l <= tmp2.r) {
              ss.insert(tmp2);
              tot += tmp2.r - tmp2.l;
            }
          }
        } else {
          if (c == '.') {
            if (str[pos - 1] == '.' && str[pos + 1] == '.') {
              tmp2.l = tmp.l;
              it2 = it;
              tot -= tmp.r - tmp.l;
              it++;
              tmp = *it;
              tmp2.r = tmp.r;
              tot -= tmp.r - tmp.l;
              ss.erase(it);
              ss.erase(it2);
              ss.insert(tmp2);
              tot += tmp2.r - tmp2.l;
            } else if (str[pos - 1] == '.') {
              tmp.r++;
              ss.erase(it);
              ss.insert(tmp);
              tot += 1;
            } else if (str[pos + 1] == '.') {
              it++;
              tmp = *it;
              tmp.l--;
              ss.erase(it);
              ss.insert(tmp);
              tot += 1;
            } else {
              tmp2.l = tmp2.r = pos;
              ss.insert(tmp2);
            }
          }
        }
      }
      str[pos] = c;
      cout << tot << endl;
    }
  }
  return 0;
}
