#include <bits/stdc++.h>
using namespace std;
string s;
int b[1000000];
int n, m;
int pos;
char q;
set<pair<int, int> > ss;
int ans;
void add(int x) { ans += x - 1; }
void del(int x) { ans -= x - 1; }
void solve1(int x) {
  set<pair<int, int> >::iterator it = ss.upper_bound(make_pair(x, 100000000));
  --it;
  ss.erase(it);
  pair<int, int> cur = *it;
  del(cur.second - cur.first + 1);
  if (x > cur.first) {
    add(x - cur.first);
    ss.insert(make_pair(cur.first, x - 1));
  }
  if (x < cur.second) {
    add(cur.second - x);
    ss.insert(make_pair(x + 1, cur.second));
  }
}
void solve2(int x) {
  set<pair<int, int> >::iterator it2 =
      ss.upper_bound(make_pair(x + 1, 100000000));
  --it2;
  set<pair<int, int> >::iterator it1 =
      ss.upper_bound(make_pair(x - 1, 100000000));
  --it1;
  pair<int, int> cur = make_pair(x, x);
  pair<int, int> cur1 = *it1;
  pair<int, int> cur2 = *it2;
  if (cur1.second == x - 1) {
    ss.erase(it1);
    del(cur1.second - cur1.first + 1);
    cur.first = cur1.first;
  }
  if (cur2.first == x + 1) {
    ss.erase(it2);
    del(cur2.second - cur2.first + 1);
    cur.second = cur2.second;
  }
  add(cur.second - cur.first + 1);
  ss.insert(cur);
}
int main() {
  cin >> n >> m;
  cin >> s;
  s = "A" + s;
  s = s + "A";
  for (int i = 1; i <= n; i++)
    if (s[i] == '.')
      b[i] = 1 + b[i - 1];
    else
      b[i] = 0;
  ss.insert(make_pair(-100, -100));
  ss.insert(make_pair(10000000, 10000000));
  for (int i = 1; i <= n; i++)
    if (s[i] == '.' && s[i + 1] != '.') {
      ss.insert(make_pair(i - b[i] + 1, i));
      add(b[i]);
    }
  for (int i = 1; i <= m; i++) {
    cin >> pos >> q;
    if (q != '.') {
      if (s[pos] == '.') solve1(pos);
      s[pos] = q;
    } else {
      if (s[pos] != '.') solve2(pos);
      s[pos] = '.';
    }
    cout << ans << "\n";
  }
}
