#include <bits/stdc++.h>
using namespace std;
const int maxn = 100050;
int n, q;
char str[maxn];
int pre[26][maxn], suf[26][maxn];
int arr[26][maxn], ar[26][maxn];
int Pf[26][maxn], Sf[26][maxn];
int solve(int, int, int);
int hd(int k, int l, int r, int dep) {
  if (ar[k][l])
    return Sf[k][l];
  else {
    ar[k][l] = 1, Sf[k][l] = solve(l, r, dep + 1);
    return Sf[k][l];
  }
}
int pd(int k, int r, int l, int dep) {
  if (arr[k][r])
    return Pf[k][r];
  else {
    arr[k][r] = 1, Pf[k][r] = solve(l, r, dep + 1);
    return Pf[k][r];
  }
}
int app[maxn][28];
int solve(int l, int r, int dep) {
  if (l > r) return 0;
  if (l == r) return 1;
  for (int k = 0; k <= 26; k++) app[dep][k] = 0;
  for (int k = 0; k < 26; k++) {
    int pv = suf[k][l], sv = pre[k][r];
    if (pv > r || sv < l || pv == -1 || sv == -1) continue;
    int ans = Pf[k][sv] ^ Pf[k][pv];
    if (pre[k][r] != r) ans ^= pd(k, r, sv + 1, dep);
    if (suf[k][l] != l) ans ^= hd(k, l, pv - 1, dep);
    app[dep][ans] = 1;
  }
  for (int i = 0; i <= 26; i++)
    if (app[dep][i] == 0) return i;
}
void init() {
  for (int i = 0; i < n; i++) {
    if (i - 1 >= 0 && pre[str[i] - 'a'][i - 1] != -1) {
      int k = str[i] - 'a';
      if (pre[k][i - 1] + 1 > i - 1)
        Pf[k][i] = Pf[k][pre[k][i - 1]];
      else
        Pf[k][i] = Pf[k][pre[k][i - 1]] ^ Pf[k][i - 1];
      arr[k][i] = 1;
    }
    for (int k = 0; k < 26; k++) {
      if (pre[k][i] == -1) continue;
      if (arr[k][i]) continue;
      if (pre[k][i] != i) Pf[k][i] = solve(pre[k][i] + 1, i, 0);
      arr[k][i] = 1;
    }
  }
  for (int i = n - 1; i >= 0; i--) {
    if (i + 1 < n && suf[str[i] - 'a'][i + 1] != -1) {
      int k = str[i] - 'a';
      if (i + 1 > suf[k][i + 1] - 1)
        Sf[k][i] = Sf[k][suf[k][i + 1]];
      else
        Sf[k][i] = Sf[k][suf[k][i + 1]] ^ Sf[k][i + 1];
      ar[k][i] = 1;
    }
    for (int k = 0; k < 26; k++) {
      if (suf[k][i] == -1) continue;
      if (ar[k][i]) continue;
      if (suf[k][i] != i) Sf[k][i] = solve(i, suf[k][i] - 1, 0);
      ar[k][i] = 1;
    }
  }
}
void read() {
  scanf("%s", str);
  scanf("%d", &q);
  n = strlen(str);
  for (int k = 0; k < 26; k++) {
    for (int i = 0; i < n; i++) pre[k][i] = suf[k][i] = -1;
  }
  for (int i = 0; i < n; i++)
    pre[str[i] - 'a'][i] = i, suf[str[i] - 'a'][i] = i;
  for (int k = 0; k < 26; k++) {
    for (int i = 1; i < n; i++)
      if (pre[k][i] == -1) pre[k][i] = pre[k][i - 1];
    for (int i = n - 2; i >= 0; i--)
      if (suf[k][i] == -1) suf[k][i] = suf[k][i + 1];
  }
}
void work() {
  for (int i = 1; i <= q; i++) {
    int l, r;
    scanf("%d%d", &l, &r);
    int flag = solve(l - 1, r - 1, 0);
    if (flag)
      puts("Alice");
    else
      puts("Bob");
  }
}
int main() {
  read();
  init();
  work();
  return 0;
}
