#include<bits/stdc++.h>
using namespace std;
set<int> p;
set<int> k;
set<int> p2;
set<int> p3;
set<int> k3;
set<int> p23;
multiset<int> wiel;
int main()
{
ios_base::sync_with_stdio(0);
int n,m,a,b,wi = 0,wi2 = 0,x,y;
string slo;
bool czyp,czyk;
cin >> n >> slo >> m;
for(int i = 0;i < n;++i)
{
if(slo[i] == '_')
{
if(wi == 0)
{
p.insert(i);
p2.insert(-i);
}
wi++;
}
if(slo[i] == '.')
{
if(wi2 == 0)
{
p3.insert(i);
p23.insert(-i);
}
wi2++;
}
if(slo[i] == '.' && wi > 0)
{
wi = 0;
k.insert(i-1);
}
if(slo[i] == '_' && wi2 > 0)
{
wiel.insert(wi2);
wi2 = 0;
k3.insert(i-1);
}
}
if(wi > 0)
{
k.insert(n-1);
wi = 0;
}
if(wi2 > 0)
{
wiel.insert(wi2);
k3.insert(n-1);
wi2 = 0;
}
if(n == 1)
{
for(int i = 0;i < m;++i)
{
cin >> a >> b;
if(a == 1)
{
cout << "M0ST JEST CALY" << endl;
}
else
{
cout << 2 << endl;
}
}
return 0;
}
/*for(int i : p)
{
cout << i << ' ';
}
cout << endl;
for(int i : k)
{
cout << i << ' ';
}
cout << endl;
for(int i : p3)
{
cout << i << ' ';
}
cout << endl;
for(int i : k3)
{
cout << i << ' ';
}
cout << endl;*/
for(int i = 0;i < m;++i)
{
cin >> a >> b;
czyp = 0;
czyk = 0;
b--;
if(a == 2)
{
if(p.find(b) != p.end())
{
czyp = 1;
}
if(k.find(b) != k.end())
{
czyk = 1;
}
cout << czyp << ' ' << czyk << endl;
if(czyp && czyk)
{
if(b > 0 && b < n-1)
{
x = -(*p23.lower_bound(-b));
y = *k3.lower_bound(x);
cout << "-_-" << x << ' ' << y << endl;
wi = y-x+1;
x = b+1;
y = *k3.lower_bound(x);
wi2 = y-x+1;
cout << "-_-" << x << ' ' << y << endl;
wiel.insert(wi+wi2+1);
wiel.erase(wiel.find(wi));
wiel.erase(wiel.find(wi2));
p.erase(b);
p2.erase(-b);
k.erase(b);
k3.erase(b-1);
p3.erase(b+1);
p23.erase(-(b+1));
}
if(b == 0)
{
x = b+1;
y = *k3.lower_bound(x);
wi2 = y-x+1;
cout << "-_-" << x << ' ' << y << endl;
wiel.insert(wi2+1);
wiel.erase(wiel.find(wi2));
p.erase(b);
p2.erase(-b);
k.erase(b);
p3.erase(1);
p23.erase(-1);
p3.insert(0);
p23.insert(0);
}
if(b == n-1)
{
x = -(*p23.lower_bound(-b));
y = *k3.lower_bound(x);
cout << "-_-" << x << ' ' << y << endl;
wi = y-x+1;
wiel.insert(wi+1);
wiel.erase(wiel.find(wi));
p.erase(b);
p2.erase(-b);
k.erase(b);
k3.erase(b-1);
k3.insert(b);
}
}
else if(czyp)
{
if(b > 0)
{
x = -(*p23.lower_bound(-b));
y = b-1;
wiel.erase(wiel.find(y-x+1));
wiel.insert(y-x+2);
k3.erase(b-1);
k3.insert(b);
p.erase(b);
p.insert(b+1);
p2.erase(-b);
p2.insert(-(b+1));
}
else
{
wiel.insert(1);
p3.insert(0);
p23.insert(0);
k3.insert(0);
p.insert(1);
p2.insert(-1);
p.erase(0);
p2.erase(0);
}
}
else if(czyk)
{
if(b < n-1)
{
x = b+1;
y = *k3.lower_bound(b+1);
wiel.erase(wiel.find(y-x+1));
wiel.insert(y-x+2);
k.erase(b);
k.insert(b-1);
p3.erase(b+1);
p3.insert(b);
p23.erase(-(b+1));
p23.insert(-b);
}
else
{
wiel.insert(1);
p3.insert(n-1);
p23.insert(-(n-1));
k3.insert(n-1);
k.erase(b);
k.insert(b-1);
}
}
else
{
wiel.insert(1);
k.insert(b-1);
p.insert(b+1);
p2.insert(-(b+1));
p3.insert(b);
p23.insert(-b);
k3.insert(b);
}
/*for(int i : p)
{
cout << i << ' ';
}
cout << endl;
for(int i : k)
{
cout << i << ' ';
}
cout << endl;
for(int i : p3)
{
cout << i << ' ';
}
cout << endl;
for(int i : k3)
{
cout << i << ' ';
}
cout << endl;*/
if(wiel.size() == 0)
{
cout << "M0ST JEST CALY" << endl;
}
else
cout << *wiel.rbegin()+1 << endl;
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnNldDxpbnQ+IHA7CnNldDxpbnQ+IGs7CnNldDxpbnQ+IHAyOwpzZXQ8aW50PiBwMzsKc2V0PGludD4gazM7CnNldDxpbnQ+IHAyMzsKbXVsdGlzZXQ8aW50PiB3aWVsOwoKaW50IG1haW4oKQp7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoJaW50IG4sbSxhLGIsd2kgPSAwLHdpMiA9IDAseCx5OwoJc3RyaW5nIHNsbzsKCWJvb2wgY3p5cCxjenlrOwoJY2luID4+IG4gPj4gc2xvID4+IG07Cglmb3IoaW50IGkgPSAwO2kgPCBuOysraSkKCXsKCQlpZihzbG9baV0gPT0gJ18nKQoJCXsKCQkJaWYod2kgPT0gMCkKCQkJewoJCQkJcC5pbnNlcnQoaSk7CgkJCQlwMi5pbnNlcnQoLWkpOwoJCQl9CgkJCXdpKys7CgkJfQoJCWlmKHNsb1tpXSA9PSAnLicpCgkJewoJCQlpZih3aTIgPT0gMCkKCQkJewoJCQkJcDMuaW5zZXJ0KGkpOwoJCQkJcDIzLmluc2VydCgtaSk7CgkJCX0KCQkJd2kyKys7CgkJfQoJCWlmKHNsb1tpXSA9PSAnLicgJiYgd2kgPiAwKQoJCXsKCQkJd2kgPSAwOwoJCQlrLmluc2VydChpLTEpOwoJCX0KCQlpZihzbG9baV0gPT0gJ18nICYmIHdpMiA+IDApCgkJewoJCQl3aWVsLmluc2VydCh3aTIpOwoJCQl3aTIgPSAwOwoJCQlrMy5pbnNlcnQoaS0xKTsKCQl9Cgl9CglpZih3aSA+IDApCgl7CgkJay5pbnNlcnQobi0xKTsKCQl3aSA9IDA7Cgl9CglpZih3aTIgPiAwKQoJewoJCXdpZWwuaW5zZXJ0KHdpMik7CgkJazMuaW5zZXJ0KG4tMSk7CgkJd2kyID0gMDsKCX0KCWlmKG4gPT0gMSkKCXsKCQlmb3IoaW50IGkgPSAwO2kgPCBtOysraSkKCQl7CgkJY2luID4+IGEgPj4gYjsKCQlpZihhID09IDEpCgkJewoJCQljb3V0IDw8ICJNMFNUIEpFU1QgQ0FMWSIgPDwgZW5kbDsKCQl9CgkJZWxzZQoJCXsKCQkJY291dCA8PCAyIDw8IGVuZGw7CgkJfQoJfQoJcmV0dXJuIDA7Cgl9CgkvKmZvcihpbnQgaSA6IHApCgl7CgkJY291dCA8PCBpIDw8ICcgJzsKCX0KCWNvdXQgPDwgZW5kbDsKCWZvcihpbnQgaSA6IGspCgl7CgkJY291dCA8PCBpIDw8ICcgJzsKCX0KCWNvdXQgPDwgZW5kbDsKCWZvcihpbnQgaSA6IHAzKQoJewoJCWNvdXQgPDwgaSA8PCAnICc7Cgl9Cgljb3V0IDw8IGVuZGw7Cglmb3IoaW50IGkgOiBrMykKCXsKCQljb3V0IDw8IGkgPDwgJyAnOwoJfQoJY291dCA8PCBlbmRsOyovCglmb3IoaW50IGkgPSAwO2kgPCBtOysraSkKCXsKCQljaW4gPj4gYSA+PiBiOwoJCWN6eXAgPSAwOwoJCWN6eWsgPSAwOwoJCWItLTsKCQlpZihhID09IDIpCgkJewoJCQlpZihwLmZpbmQoYikgIT0gcC5lbmQoKSkKCQkJewoJCQkJY3p5cCA9IDE7CgkJCX0KCQkJaWYoay5maW5kKGIpICE9IGsuZW5kKCkpCgkJCXsKCQkJCWN6eWsgPSAxOwoJCQl9CgkJCWNvdXQgPDwgY3p5cCA8PCAnICcgPDwgY3p5ayA8PCBlbmRsOwoJCQlpZihjenlwICYmIGN6eWspCgkJCXsKCQkJCWlmKGIgPiAwICYmIGIgPCBuLTEpCgkJCQl7CgkJCQkJeCA9IC0oKnAyMy5sb3dlcl9ib3VuZCgtYikpOwoJCQkJCXkgPSAqazMubG93ZXJfYm91bmQoeCk7CgkJCQkJY291dCA8PCAiLV8tIiA8PCB4IDw8ICcgJyA8PCB5IDw8IGVuZGw7CgkJCQkJd2kgPSB5LXgrMTsKCQkJCQl4ID0gYisxOwoJCQkJCXkgPSAqazMubG93ZXJfYm91bmQoeCk7CgkJCQkJd2kyID0geS14KzE7CgkJCQkJY291dCA8PCAiLV8tIiA8PCB4IDw8ICcgJyA8PCB5IDw8IGVuZGw7CgkJCQkJd2llbC5pbnNlcnQod2krd2kyKzEpOwoJCQkJCXdpZWwuZXJhc2Uod2llbC5maW5kKHdpKSk7CgkJCQkJd2llbC5lcmFzZSh3aWVsLmZpbmQod2kyKSk7CgkJCQkJcC5lcmFzZShiKTsKCQkJCQlwMi5lcmFzZSgtYik7CgkJCQkJay5lcmFzZShiKTsKCQkJCQlrMy5lcmFzZShiLTEpOwoJCQkJCXAzLmVyYXNlKGIrMSk7CgkJCQkJcDIzLmVyYXNlKC0oYisxKSk7CgkJCQl9CgkJCQlpZihiID09IDApCgkJCQl7CgkJCQkJeCA9IGIrMTsKCQkJCQl5ID0gKmszLmxvd2VyX2JvdW5kKHgpOwoJCQkJCXdpMiA9IHkteCsxOwoJCQkJCWNvdXQgPDwgIi1fLSIgPDwgeCA8PCAnICcgPDwgeSA8PCBlbmRsOwoJCQkJCXdpZWwuaW5zZXJ0KHdpMisxKTsKCQkJCQl3aWVsLmVyYXNlKHdpZWwuZmluZCh3aTIpKTsKCQkJCQlwLmVyYXNlKGIpOwoJCQkJCXAyLmVyYXNlKC1iKTsKCQkJCQlrLmVyYXNlKGIpOwoJCQkJCXAzLmVyYXNlKDEpOwoJCQkJCXAyMy5lcmFzZSgtMSk7CgkJCQkJcDMuaW5zZXJ0KDApOwoJCQkJCXAyMy5pbnNlcnQoMCk7CgkJCQl9CgkJCQlpZihiID09IG4tMSkKCQkJCXsKCQkJCQl4ID0gLSgqcDIzLmxvd2VyX2JvdW5kKC1iKSk7CgkJCQkJeSA9ICprMy5sb3dlcl9ib3VuZCh4KTsKCQkJCQljb3V0IDw8ICItXy0iIDw8IHggPDwgJyAnIDw8IHkgPDwgZW5kbDsKCQkJCQl3aSA9IHkteCsxOwoJCQkJCXdpZWwuaW5zZXJ0KHdpKzEpOwoJCQkJCXdpZWwuZXJhc2Uod2llbC5maW5kKHdpKSk7CgkJCQkJcC5lcmFzZShiKTsKCQkJCQlwMi5lcmFzZSgtYik7CgkJCQkJay5lcmFzZShiKTsKCQkJCQlrMy5lcmFzZShiLTEpOwoJCQkJCWszLmluc2VydChiKTsKCQkJCX0KCQkJCQoJCQl9CgkJCWVsc2UgaWYoY3p5cCkKCQkJewoJCQkJaWYoYiA+IDApCgkJCQl7CgkJCQkJeCA9IC0oKnAyMy5sb3dlcl9ib3VuZCgtYikpOwoJCQkJCXkgPSBiLTE7CgkJCQkJd2llbC5lcmFzZSh3aWVsLmZpbmQoeS14KzEpKTsKCQkJCQl3aWVsLmluc2VydCh5LXgrMik7CgkJCQkJazMuZXJhc2UoYi0xKTsKCQkJCQlrMy5pbnNlcnQoYik7CgkJCQkJcC5lcmFzZShiKTsKCQkJCQlwLmluc2VydChiKzEpOwoJCQkJCXAyLmVyYXNlKC1iKTsKCQkJCQlwMi5pbnNlcnQoLShiKzEpKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQl3aWVsLmluc2VydCgxKTsKCQkJCQlwMy5pbnNlcnQoMCk7CgkJCQkJcDIzLmluc2VydCgwKTsKCQkJCQlrMy5pbnNlcnQoMCk7CgkJCQkJcC5pbnNlcnQoMSk7CgkJCQkJcDIuaW5zZXJ0KC0xKTsKCQkJCQlwLmVyYXNlKDApOwoJCQkJCXAyLmVyYXNlKDApOwoJCQkJfQoJCQl9CgkJCWVsc2UgaWYoY3p5aykKCQkJewoJCQkJaWYoYiA8IG4tMSkKCQkJCXsKCQkJCQl4ID0gYisxOwoJCQkJCXkgPSAqazMubG93ZXJfYm91bmQoYisxKTsKCQkJCQl3aWVsLmVyYXNlKHdpZWwuZmluZCh5LXgrMSkpOwoJCQkJCXdpZWwuaW5zZXJ0KHkteCsyKTsKCQkJCQlrLmVyYXNlKGIpOwoJCQkJCWsuaW5zZXJ0KGItMSk7CgkJCQkJcDMuZXJhc2UoYisxKTsKCQkJCQlwMy5pbnNlcnQoYik7CgkJCQkJcDIzLmVyYXNlKC0oYisxKSk7CgkJCQkJcDIzLmluc2VydCgtYik7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJd2llbC5pbnNlcnQoMSk7CgkJCQkJcDMuaW5zZXJ0KG4tMSk7CgkJCQkJcDIzLmluc2VydCgtKG4tMSkpOwoJCQkJCWszLmluc2VydChuLTEpOwoJCQkJCWsuZXJhc2UoYik7CgkJCQkJay5pbnNlcnQoYi0xKTsKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCXdpZWwuaW5zZXJ0KDEpOwoJCQkJay5pbnNlcnQoYi0xKTsKCQkJCXAuaW5zZXJ0KGIrMSk7CgkJCQlwMi5pbnNlcnQoLShiKzEpKTsKCQkJCXAzLmluc2VydChiKTsKCQkJCXAyMy5pbnNlcnQoLWIpOwoJCQkJazMuaW5zZXJ0KGIpOwoJCQl9CgkJCS8qZm9yKGludCBpIDogcCkKCQkJewoJCQkJY291dCA8PCBpIDw8ICcgJzsKCQkJfQoJCQljb3V0IDw8IGVuZGw7CgkJCWZvcihpbnQgaSA6IGspCgkJCXsKCQkJCWNvdXQgPDwgaSA8PCAnICc7CgkJCX0KCQkJY291dCA8PCBlbmRsOwoJCQlmb3IoaW50IGkgOiBwMykKCQkJewoJCQkJY291dCA8PCBpIDw8ICcgJzsKCQkJfQoJCQljb3V0IDw8IGVuZGw7CgkJCWZvcihpbnQgaSA6IGszKQoJCQl7CgkJCQljb3V0IDw8IGkgPDwgJyAnOwoJCQl9CgkJCWNvdXQgPDwgZW5kbDsqLwoJCQlpZih3aWVsLnNpemUoKSA9PSAwKQoJCQl7CgkJCQljb3V0IDw8ICJNMFNUIEpFU1QgQ0FMWSIgPDwgZW5kbDsKCQkJfQoJCQllbHNlCgkJCQljb3V0IDw8ICp3aWVsLnJiZWdpbigpKzEgPDwgZW5kbDsKCQl9Cgl9CgkKfQo=