#include <bits/stdc++.h>
template <typename Y>
inline bool updmin(Y &a, Y b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
template <typename Y>
inline bool updmax(Y &a, Y b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <typename Y>
inline Y abs(Y a) {
  if (a < 0) a = -a;
  return a;
}
template <typename Y>
inline Y sqr(Y a) {
  return a * a;
}
int read() {
  int w = 1, q = 0, ch = ' ';
  for (; ch < '0' || ch > '9'; ch = getchar())
    if (ch == '-') w = -1;
  for (; ch >= '0' && ch <= '9'; ch = getchar()) q = q * 10 + ch - 48;
  return q * w;
}
inline void FileIO() {
  freopen(
      ""
      ".in",
      "r", stdin);
  freopen(
      ""
      ".out",
      "w", stdout);
}
const int N = 100010;
char str[N];
int n, q, s[N], f[N][26], g[N][26], pre[N][26], nxt[N][26], sum[N];
int vis[27];
inline int calc(int l, int r) {
  if (l > r) {
    return 0;
  }
  for (int x = 0; x < 26; x++) {
    vis[x] = 0;
  }
  for (int x = 0; x < 26; x++) {
    int p = nxt[l][x], q = pre[r][x];
    if (p <= q) {
      vis[f[l][x] ^ g[r][x] ^ sum[p] ^ sum[q]] = 1;
    }
  }
  for (int x = 0; x < 26; x++) {
    if (!vis[x]) {
      return x;
    }
  }
  assert(0);
}
int main() {
  memset(f, -1, sizeof f);
  memset(g, -1, sizeof g);
  scanf("%s", str + 1);
  n = (int)strlen(str + 1);
  q = read();
  for (int i = 1; i <= n; i++) {
    s[i] = str[i] - 'a';
  }
  for (int i = 1; i <= n; i++) {
    for (int x = 0; x < 26; x++) {
      pre[i][x] = pre[i - 1][x];
    }
    pre[i][s[i]] = i;
  }
  for (int x = 0; x < 26; x++) {
    nxt[n + 1][x] = n + 1;
  }
  for (int i = n; i; i--) {
    for (int x = 0; x < 26; x++) {
      nxt[i][x] = nxt[i + 1][x];
    }
    nxt[i][s[i]] = i;
  }
  for (int i = 1; i <= n; i++) {
    int k = pre[i - 1][s[i]];
    if (k) {
      sum[i] = sum[k] ^ g[i - 1][s[i]];
    }
    for (int j = i; j > k; j--) {
      f[j][s[i]] = calc(j, i - 1);
    }
    std::vector<std::pair<int, int> > P(0);
    for (int x = 0; x < 26; x++) {
      if (pre[i][x]) {
        P.push_back(std::make_pair(-pre[i][x], x));
      }
    }
    std::sort(P.begin(), P.end());
    for (auto p : P) {
      g[i][p.second] = calc(-p.first + 1, i);
    }
  }
  while (q--) {
    int l = read(), r = read();
    puts(calc(l, r) ? "Alice" : "Bob");
  }
  return 0;
}
