#include<stdio.h>
#include<math.h>
#define MIN(a,b) ((a)<=(b)?(a):(b))
int A[4][100005],Carry[2][400],N,N2;
int Read(int ind) { char ch=0; int a=0; while(ch<33) ch=getchar_unlocked(); while(ch>33) { A[ind][N-3-a++]=ch-'0'; ch=getchar_unlocked(); } A[ind][N-1]=A[ind][N-2]=0; }
int Update(int pos,int bit,int ind) { A[ind][pos]=bit; CalBlock((pos/N2)*N2,MIN(N,((pos/N2)+1)*N2),pos/N2); }
int CalBlock(int from,int to,int bno)
{
int i,j,c[2]={0,1};
for(j=from;j<to;j++) for(i=0;i<2;i++) { A[2+i][j]=A[0][j]^A[1][j]^c[i]; c[i]=(c[i]&(A[0][j]^A[1][j]))|(A[0][j]&A[1][j]); }
Carry[0][bno]=c[0]; Carry[1][bno]=c[1];
}
void solve(int k)
{
int i,c=0; for(i=0;i<(k/N2);i++) c=Carry[c][i];
}
int Pprocess()
{
for(i=0;((i+1)*N2)<N;i++) CalBlock(i*N2,(i+1)*N2,i);
if(i*N2<N) CalBlock(i*N2,N,N2);
}
int main()
{
int Q;
scanf("%d%d",&N
,&Q
); N
+=2; Read(0); Read(1); Pprocess();
while(Q--)
{
char q
[10]; int i
,j
; scanf("%s",q
); if(q
[0]=='s') { scanf("%d%d",&i
,&j
); Update
(i
,j
,q
[4]=='b'); } else { scanf("%d",&i
); solve
(i
); } }
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8bWF0aC5oPgojZGVmaW5lIE1JTihhLGIpICgoYSk8PShiKT8oYSk6KGIpKQoKaW50IEFbNF1bMTAwMDA1XSxDYXJyeVsyXVs0MDBdLE4sTjI7CgppbnQgUmVhZChpbnQgaW5kKSB7IGNoYXIgY2g9MDsgaW50IGE9MDsgd2hpbGUoY2g8MzMpIGNoPWdldGNoYXJfdW5sb2NrZWQoKTsgd2hpbGUoY2g+MzMpIHsgQVtpbmRdW04tMy1hKytdPWNoLScwJzsgY2g9Z2V0Y2hhcl91bmxvY2tlZCgpOyB9IEFbaW5kXVtOLTFdPUFbaW5kXVtOLTJdPTA7IH0KCmludCBVcGRhdGUoaW50IHBvcyxpbnQgYml0LGludCBpbmQpIHsgQVtpbmRdW3Bvc109Yml0OyBDYWxCbG9jaygocG9zL04yKSpOMixNSU4oTiwoKHBvcy9OMikrMSkqTjIpLHBvcy9OMik7IH0KCmludCBDYWxCbG9jayhpbnQgZnJvbSxpbnQgdG8saW50IGJubykKewogICAgaW50IGksaixjWzJdPXswLDF9OwogICAgZm9yKGo9ZnJvbTtqPHRvO2orKykgZm9yKGk9MDtpPDI7aSsrKSB7IEFbMitpXVtqXT1BWzBdW2pdXkFbMV1bal1eY1tpXTsgY1tpXT0oY1tpXSYoQVswXVtqXV5BWzFdW2pdKSl8KEFbMF1bal0mQVsxXVtqXSk7IH0KICAgIENhcnJ5WzBdW2Jub109Y1swXTsgQ2FycnlbMV1bYm5vXT1jWzFdOwp9Cgp2b2lkIHNvbHZlKGludCBrKQp7CiAgICAgaW50IGksYz0wOyBmb3IoaT0wO2k8KGsvTjIpO2krKykgYz1DYXJyeVtjXVtpXTsKICAgICBwcmludGYoIiVkIixBWzIrY11ba10pOwp9CgppbnQgUHByb2Nlc3MoKQp7CiAgICBpbnQgaSxqLHA7IE4yPXNxcnQoTik7CiAgICBmb3IoaT0wOygoaSsxKSpOMik8TjtpKyspIENhbEJsb2NrKGkqTjIsKGkrMSkqTjIsaSk7CiAgICBpZihpKk4yPE4pIENhbEJsb2NrKGkqTjIsTixOMik7Cn0KCmludCBtYWluKCkKewogICAgaW50IFE7CiAgICBzY2FuZigiJWQlZCIsJk4sJlEpOyBOKz0yOwogICAgUmVhZCgwKTsgUmVhZCgxKTsgUHByb2Nlc3MoKTsKICAgIHdoaWxlKFEtLSkKICAgIHsKICAgICAgICAgICAgICBjaGFyIHFbMTBdOyBpbnQgaSxqOyBzY2FuZigiJXMiLHEpOwogICAgICAgICAgICAgIGlmKHFbMF09PSdzJykgeyBzY2FuZigiJWQlZCIsJmksJmopOyBVcGRhdGUoaSxqLHFbNF09PSdiJyk7IH0KICAgICAgICAgICAgICBlbHNlIHsgc2NhbmYoIiVkIiwmaSk7IHNvbHZlKGkpOyB9CiAgICB9CiAgICByZXR1cm4gMDsKfQ==