#include <iostream>
#include <iomanip>
#include <algorithm>
#include <sstream>
#include <string>
#include <cmath>
#include <vector>
#include <set>
#include <functional>
#include <map>
#include <stack>
#include <climits>
#include <bitset>
#include <numeric>
using namespace std;
#define fast cin.tie(nullptr);cout.tie(nullptr);ios_base::sync_with_stdio(false);
using ll = long long;
using str = string;
ll l_r[100000] = { 0 };
ll r_r[100000] = { 0 };
ll b_r[100000] = { 0 };
int main() {
fast
str s;
cin >> s;
for (int i = 0; i < s.size(); i++) {
if (s[i] == '\\') {
r_r[i + 1] = 1;
}
else if (s[i] == '/') {
l_r[i + 1] = 1;
}
else if (s[i] == '_') {
b_r[i + 1] = 1;
}
}
for (int i = 1; i < s.size(); i++) {
l_r[i] += l_r[i - 1];
r_r[i] += r_r[i - 1];
b_r[i] += b_r[i - 1];
}
ll ro[100000] = { 0 };
ll b[100000] = { 0 };
for (int i = 1; i < 100000; i++) {
ro[i] = i;
b[i] = i - 1;
}
for (int i = 1; i < 100000; i++) {
ro[i] += ro[i-1];
b[i] += b[i - 1];
}
int q;
cin >> q;
while (q--) {
int l, r;
cin >> l >> r;
ll mn_r = min(ro[l - 1] - ro[l - 2], ro[r - 1] - ro[r - 2]);
ll ba_n = min(b_r[r], b_r[l - 1]);
int re1 = (upper_bound(ro, ro + 100000, mn_r) - ro) - 1;
int re2 = (upper_bound(b, b + 100000, ba_n) - b) - 1;
cout << min(re1, re2) << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDxudW1lcmljPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGZhc3QgY2luLnRpZShudWxscHRyKTtjb3V0LnRpZShudWxscHRyKTtpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKdXNpbmcgbGwgPSBsb25nIGxvbmc7CnVzaW5nIHN0ciA9IHN0cmluZzsKCgoKCmxsIGxfclsxMDAwMDBdID0geyAwIH07CmxsIHJfclsxMDAwMDBdID0geyAwIH07CmxsIGJfclsxMDAwMDBdID0geyAwIH07CgoKCgoKCmludCBtYWluKCkgewogICAgZmFzdAoKCiAgICAgICAgc3RyIHM7CiAgICAgICAgICAgIGNpbiA+PiBzOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgICAgICAgIGlmIChzW2ldID09ICdcXCcpIHsKICAgICAgICAgICAgICAgICAgICByX3JbaSArIDFdID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgIGlmIChzW2ldID09ICcvJykgewogICAgICAgICAgICAgICAgICAgIGxfcltpICsgMV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSAgaWYgKHNbaV0gPT0gJ18nKSB7CiAgICAgICAgICAgICAgICAgICAgYl9yW2kgKyAxXSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgICAgICBsX3JbaV0gKz0gbF9yW2kgLSAxXTsKICAgICAgICAgICAgICAgIHJfcltpXSArPSByX3JbaSAtIDFdOwogICAgICAgICAgICAgICAgYl9yW2ldICs9IGJfcltpIC0gMV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGwgcm9bMTAwMDAwXSA9IHsgMCB9OwogICAgICAgICAgICBsbCBiWzEwMDAwMF0gPSB7IDAgfTsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCAxMDAwMDA7IGkrKykgewogICAgICAgICAgICAgICAgcm9baV0gPSBpOwogICAgICAgICAgICAgICAgYltpXSA9IGkgLSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgMTAwMDAwOyBpKyspIHsKICAgICAgICAgICAgICAgIHJvW2ldICs9IHJvW2ktMV07CiAgICAgICAgICAgICAgICBiW2ldICs9IGJbaSAtIDFdOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpbnQgcTsKICAgICAgICAgICAgY2luID4+IHE7CgogICAgICAgICAgICB3aGlsZSAocS0tKSB7CiAgICAgICAgICAgICAgICBpbnQgbCwgcjsKICAgICAgICAgICAgICAgIGNpbiA+PiBsID4+IHI7CiAgICAgICAgICAgICAgICBsbCBtbl9yID0gbWluKHJvW2wgLSAxXSAtIHJvW2wgLSAyXSwgcm9bciAtIDFdIC0gcm9bciAtIDJdKTsKICAgICAgICAgICAgICAgIGxsIGJhX24gPSBtaW4oYl9yW3JdLCBiX3JbbCAtIDFdKTsKICAgICAgICAgICAgICAgIGludCByZTEgPSAodXBwZXJfYm91bmQocm8sIHJvICsgMTAwMDAwLCBtbl9yKSAtIHJvKSAtIDE7CiAgICAgICAgICAgICAgICBpbnQgcmUyID0gKHVwcGVyX2JvdW5kKGIsIGIgKyAxMDAwMDAsIGJhX24pIC0gYikgLSAxOwogICAgICAgICAgICAgICAgY291dCA8PCBtaW4ocmUxLCByZTIpIDw8IGVuZGw7CiAgICAgICAgICAgIH0KCgogICAgICAKICAgICAgICAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiAgICByZXR1cm4gMDsKfQ==