#include<bits/stdc++.h>
using namespace std;
namespace IO{
char ibuf[(1<<20)+1],*iS,*iT;
#if ONLINE_JUDGE
#define gh() (iS==iT?iT=(iS=ibuf)+fread(ibuf,1,(1<<20)+1,stdin),(iS==iT?EOF:*iS++):*iS++)
#else
#define gh() getchar()
#endif
inline long long read(){
char ch=gh();
long long x=0;
bool t=0;
while(ch<'0'||ch>'9') t|=ch=='-',ch=gh();
while(ch>='0'&&ch<='9') x=x*10+(ch^48),ch=gh();
return t?-x:x;
}
inline char getc(){
char ch=gh();
while(ch<'a'||ch>'z') ch=gh();
return ch;
}
}
using IO::read;
using IO::getc;
const int N=3e6+10;
int n,q,x;
char s[N];
int main(){
q=read();
cin>>s;
n=strlen(s);
for(int i=0,j=0;i<n;i=j+1){
while(j+1<=n&&s[j+1]==s[i]) j++;
x++;
}
cout<<(x+1>>1)<<endl;
while(q--){
int a=read();
a--;
char c=getc();
if(s[a-1]==s[a]&&s[a-1]!=c)
x++;
if(s[a+1]==s[a]&&s[a+1]!=c)
x++;
if(s[a-1]!=s[a]&&s[a-1]==c)
x--;
if(s[a+1]!=s[a]&&s[a+1]==c)
x--;
s[a]=c;
cout<<(x+1>>1)<<endl;
}
return 0;
}