#include <bits/stdc++.h>
using namespace std;
const long double PI = acos(-1);
const int MOD = 1000000007;
const int FMOD = 998244353;
long long int dp[5005][5005];
char s[1000006];
void solve() {
  scanf("%s", s + 1);
  int n;
  for (n = 1; s[n]; n++)
    ;
  n--;
  for (int i = 1; i <= n; i++) {
    dp[i][i] = 1;
    if (i > 1) {
      if (s[i] == s[i - 1]) {
        dp[i - 1][i]++;
      }
    }
  }
  for (int i = n - 2; i >= 1; i--) {
    for (int j = i + 2; j <= n; j++) {
      if (s[i] == s[j]) {
        dp[i][j] = dp[i + 1][j - 1];
      }
    }
  }
  for (int i = n - 1; i >= 1; i--) {
    for (int j = i + 1; j <= n; j++) {
      dp[i][j] += dp[i + 1][j] + dp[i][j - 1] - dp[i + 1][j - 1];
    }
  }
  int q;
  cin >> q;
  while (q--) {
    int l, r;
    scanf("%d%d", &l, &r);
    printf("%lld\n", dp[l][r]);
  }
}
signed main() { solve(); }
