import java.io.OutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.io.FilterInputStream; import java.io.BufferedInputStream; import java.io.InputStream; /** * @author khokharnikunj8 */ public class Main { public static void main(String[] args) { InputStream inputStream = System.in; OutputStream outputStream = System.out; ScanReader in = new ScanReader(inputStream); PrintWriter out = new PrintWriter(outputStream); MaximumPalindromes solver = new MaximumPalindromes(); solver.solve(1, in, out); out.close(); } static class MaximumPalindromes { public void solve(int testNumber, ScanReader in, PrintWriter out) { String s = in.scanString(); int q = in.scanInt(), l, r, count, len; while (q-- > 0) { l = in.scanInt(); r = in.scanInt(); if (r - l == 0) out.println(1); else if (r - l == 1) { if (s.charAt(r - 1) != s.charAt(l - 1)) out.println(0); else out.println(1); } else if (r - l == 2) { if (s.charAt(l - 1) == s.charAt(l) && s.charAt(l) == s.charAt(r - 1)) out.println(1); else if (s.charAt(l - 1) == s.charAt(l) || s.charAt(l) == s.charAt(r - 1) || s.charAt(r - 1) == s.charAt(l - 1)) out.println(1); else out.println(0); } else { if (s.charAt(l - 1) == s.charAt(l) && s.charAt(l) == s.charAt(l + 1) && s.charAt(l + 1) == s.charAt(r - 1)) out.println(1); if (s.charAt(l - 1) == s.charAt(l) || s.charAt(l + 1) == s.charAt(l) || s.charAt(l + 1) == s.charAt(r - 1) || s.charAt(l - 1) == s.charAt(r - 1) || s.charAt(l - 1) == s.charAt(l + 1) || s.charAt(l) == s.charAt(r - 1)) out.println(2); else out.println(0); } } } } static class ScanReader { private byte[] buf = new byte[4 * 1024]; private int index; private BufferedInputStream in; private int total; public ScanReader(InputStream inputStream) { in = new BufferedInputStream(inputStream); } private int scan() { if (index >= total) { index = 0; try { total = in.read(buf); } catch (Exception e) { e.printStackTrace(); } if (total <= 0) return -1; } return buf[index++]; } public int scanInt() { int integer = 0; int n = scan(); while (isWhiteSpace(n)) n = scan(); int neg = 1; if (n == '-') { neg = -1; n = scan(); } while (!isWhiteSpace(n)) { if (n >= '0' && n <= '9') { integer *= 10; integer += n - '0'; n = scan(); } } return neg * integer; } public String scanString() { int c = scan(); if (c == -1) return null; while (isWhiteSpace(c)) c = scan(); StringBuilder res = new StringBuilder(); do { res.appendCodePoint(c); c = scan(); } while (!isWhiteSpace(c)); return res.toString(); } private boolean isWhiteSpace(int n) { if (n == ' ' || n == '\n' || n == '\r' || n == '\t' || n == -1) return true; else return false; } } }