uses math;
const fi='nkbracke.inp';
fo='nkbracke.out';
oo=round(1e9);
var ch,ch1:char;
i,n,m:longint;
tiento,sum,a:array[0..round(1e6)]of longint;
procedure mo;
begin
assign(input,fi);reset(input);
assign(output,fo);rewritE(output);
end;
procedure dong;
begin
close(input);closE(output);
end;
procedure nhap;
begin
readln(n,m);
for i:=1 to n do
begin
read(ch);
if ch='(' then a[i]:=1 else a[i]:=-1;
end;
end;
procedure sosanh(i,l,r:longint);
begin
tiento[i]:=min(tiento[l],sum[l]+tiento[r]);
sum[i]:=sum[l]+sum[r];
end;
procedure sinh(l,r,i:longint);
var mid:longint;
begin
if l=r then
begin
sum[i]:=a[l];
tiento[i]:=a[l];
end
else
begin
mid:=(l+r) div 2;
sinh(l,mid,i*2);
sinh(mid+1,r,i*2+1);
sosanh(i,i*2,i*2+1);
end;
end;
procedure update(u,w,l,r,i:longint);
var mid:longint;
begin
if (r<u) or (u<l) then exit;
if (l=r) and (l=u) then
begin
sum[i]:=w;
tiento[i]:=w;
end
else
begin
mid:=(l+r) div 2;
update(u,w,l,mid,i*2);
update(u,w,mid+1,r,i*2+1);
sosanh(i,i*2,i*2+1);
end;
end;
procedure find(u,v,l,r,i:longint);
var mid:longint;
begin
if (r<u) or (v<l) then exit;
if (u<=l) and (r<=v) then
sosanh(0,0,i)
else
begin
mid:=(l+r) div 2;
find(u,v,l,mid,i*2);
find(u,v,mid+1,r,i*2+1);
end;
end;
procedure xuli;
var l,r,loai:longint;
begin
sinh(1,n,1);
for m:=1 to m do
begin
read(loai,l);
if loai=0 then
begin
read(ch1,ch);
if ch='(' then update(l,1,1,n,1) else update(l,-1,1,n,1);
end
else
begin
read(r);
tiento[0]:=oo;
sum[0]:=0;
find(l,r,1,n,1);
if (tiento[0]>=0) and (sum[0]=0) then write(1) else write(0);
end;
end;
end;
begin
mo;
nhap;
xuli;
dong;
end.
dXNlcyBtYXRoOwpjb25zdCBmaT0nbmticmFja2UuaW5wJzsKICAgICAgZm89J25rYnJhY2tlLm91dCc7CiAgICAgICAgb289cm91bmQoMWU5KTsKdmFyICBjaCxjaDE6Y2hhcjsKICAgIGksbixtOmxvbmdpbnQ7CiAgICB0aWVudG8sc3VtLGE6YXJyYXlbMC4ucm91bmQoMWU2KV1vZiBsb25naW50Owpwcm9jZWR1cmUgbW87CiAgICBiZWdpbgogICAgICAgIGFzc2lnbihpbnB1dCxmaSk7cmVzZXQoaW5wdXQpOwogICAgICAgIGFzc2lnbihvdXRwdXQsZm8pO3Jld3JpdEUob3V0cHV0KTsKICAgIGVuZDsKcHJvY2VkdXJlIGRvbmc7CiAgICBiZWdpbgogICAgICAgIGNsb3NlKGlucHV0KTtjbG9zRShvdXRwdXQpOwogICAgZW5kOwpwcm9jZWR1cmUgbmhhcDsKICAgIGJlZ2luCiAgICAgICAgcmVhZGxuKG4sbSk7CiAgICAgICAgZm9yIGk6PTEgdG8gbiBkbwogICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgcmVhZChjaCk7CiAgICAgICAgICAgICAgICBpZiBjaD0nKCcgdGhlbiBhW2ldOj0xIGVsc2UgYVtpXTo9LTE7CiAgICAgICAgICAgIGVuZDsKICAgIGVuZDsKcHJvY2VkdXJlIHNvc2FuaChpLGwscjpsb25naW50KTsKICAgIGJlZ2luCiAgICAgICAgdGllbnRvW2ldOj1taW4odGllbnRvW2xdLHN1bVtsXSt0aWVudG9bcl0pOwogICAgICAgIHN1bVtpXTo9c3VtW2xdK3N1bVtyXTsKICAgIGVuZDsKcHJvY2VkdXJlIHNpbmgobCxyLGk6bG9uZ2ludCk7CiAgICB2YXIgbWlkOmxvbmdpbnQ7CiAgICAgICAgYmVnaW4KICAgICAgICAgICAgaWYgbD1yIHRoZW4KICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgc3VtW2ldOj1hW2xdOwogICAgICAgICAgICAgICAgICAgIHRpZW50b1tpXTo9YVtsXTsKICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgIG1pZDo9KGwrcikgZGl2IDI7CiAgICAgICAgICAgICAgICAgICAgc2luaChsLG1pZCxpKjIpOwogICAgICAgICAgICAgICAgICAgIHNpbmgobWlkKzEscixpKjIrMSk7CiAgICAgICAgICAgICAgICAgICAgc29zYW5oKGksaSoyLGkqMisxKTsKICAgICAgICAgICAgICAgIGVuZDsKICAgICAgICBlbmQ7CnByb2NlZHVyZSB1cGRhdGUodSx3LGwscixpOmxvbmdpbnQpOwogICAgdmFyIG1pZDpsb25naW50OwogICAgICAgIGJlZ2luCiAgICAgICAgICAgIGlmIChyPHUpIG9yICh1PGwpIHRoZW4gZXhpdDsKICAgICAgICAgICAgaWYgKGw9cikgYW5kIChsPXUpIHRoZW4KICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgc3VtW2ldOj13OwogICAgICAgICAgICAgICAgICAgIHRpZW50b1tpXTo9dzsKICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgIG1pZDo9KGwrcikgZGl2IDI7CiAgICAgICAgICAgICAgICAgICAgdXBkYXRlKHUsdyxsLG1pZCxpKjIpOwogICAgICAgICAgICAgICAgICAgIHVwZGF0ZSh1LHcsbWlkKzEscixpKjIrMSk7CiAgICAgICAgICAgICAgICAgICAgc29zYW5oKGksaSoyLGkqMisxKTsKICAgICAgICAgICAgICAgIGVuZDsKICAgICAgICBlbmQ7CnByb2NlZHVyZSBmaW5kKHUsdixsLHIsaTpsb25naW50KTsKICAgIHZhciBtaWQ6bG9uZ2ludDsKICAgICAgICBiZWdpbgogICAgICAgICAgICBpZiAocjx1KSBvciAodjxsKSB0aGVuIGV4aXQ7CiAgICAgICAgICAgIGlmICh1PD1sKSBhbmQgKHI8PXYpIHRoZW4KICAgICAgICAgICAgICAgICAgIHNvc2FuaCgwLDAsaSkKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICBtaWQ6PShsK3IpIGRpdiAyOwogICAgICAgICAgICAgICAgICAgIGZpbmQodSx2LGwsbWlkLGkqMik7CiAgICAgICAgICAgICAgICAgICAgZmluZCh1LHYsbWlkKzEscixpKjIrMSk7CiAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgZW5kOwpwcm9jZWR1cmUgeHVsaTsKdmFyIGwscixsb2FpOmxvbmdpbnQ7CiAgICBiZWdpbgogICAgICAgIHNpbmgoMSxuLDEpOwogICAgICAgIGZvciBtOj0xIHRvIG0gZG8KICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgIHJlYWQobG9haSxsKTsKICAgICAgICAgICAgICAgIGlmIGxvYWk9MCB0aGVuCiAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgcmVhZChjaDEsY2gpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiBjaD0nKCcgdGhlbiB1cGRhdGUobCwxLDEsbiwxKSBlbHNlIHVwZGF0ZShsLC0xLDEsbiwxKTsKICAgICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICByZWFkKHIpOwogICAgICAgICAgICAgICAgICAgICAgICB0aWVudG9bMF06PW9vOwogICAgICAgICAgICAgICAgICAgICAgICBzdW1bMF06PTA7CiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmQobCxyLDEsbiwxKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRpZW50b1swXT49MCkgYW5kIChzdW1bMF09MCkgdGhlbiB3cml0ZSgxKSBlbHNlIHdyaXRlKDApOwogICAgICAgICAgICAgICAgICAgIGVuZDsKICAgICAgICAgICAgZW5kOwogICAgZW5kOwpiZWdpbgogICAgbW87CiAgICBuaGFwOwogICAgeHVsaTsKICAgIGRvbmc7CmVuZC4KCg==