#include <bits/stdc++.h>
using namespace std;
const int iinf = 0x3f3f3f3f;
const long long linf = 0x3f3f3f3f3f3f3f3f;
const int N = 1e5;
const int M = 52;
const int mod = 1e9 + 7;
string s;
int n, m, a[N], cn[M];
int c[N + 1], ic[N + 1], f[N + 1], ans;
int g[N + 1], g2[N + 1], tog[M][M];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0), cout.tie(0);
  cin >> s, n = int((s).size());
  for (int i = (0), I = (n); i < I; i++) {
    if ('a' <= s[i] && s[i] <= 'z') a[i] = s[i] - 'a';
    if ('A' <= s[i] && s[i] <= 'Z') a[i] = s[i] - 'A' + 26;
    cn[a[i]]++;
  }
  c[0] = ic[0] = ic[1] = 1;
  for (int i = (2), I = (n + 1); i < I; i++)
    ic[i] = 1ll * (mod - mod / i) * ic[mod % i] % mod;
  for (int i = (1), I = (n + 1); i < I; i++)
    ic[i] = 1ll * ic[i] * ic[i - 1] % mod, c[i] = 1ll * i * c[i - 1] % mod;
  ans = 1ll * c[n >> 1] * c[n >> 1] % mod;
  for (int i = (0), I = (M); i < I; i++) ans = 1ll * ans * ic[cn[i]] % mod;
  f[0] = 1;
  for (int i = (0), I = (M); i < I; i++)
    if (cn[i])
      for (int j = (n + 1) - 1, I = (0) - 1; j > I; j--)
        if (j + cn[i] <= n) (f[j + cn[i]] += f[j]) %= mod;
  for (int i = (0), I = (M); i < I; i++)
    if (cn[i]) {
      for (int j = (0), I = (n + 1); j < I; j++) g[j] = f[j];
      for (int j = (0), I = (n + 1); j < I; j++)
        if (j >= cn[i]) (g[j] += mod - g[j - cn[i]]) %= mod;
      for (int j = (0), I = (M); j < I; j++)
        if (cn[j]) {
          if (i == j) {
            tog[i][j] = 1ll * ans * g[n >> 1] * 2 % mod;
            continue;
          }
          for (int k = (0), I = (n + 1); k < I; k++) g2[k] = g[k];
          for (int k = (0), I = (n + 1); k < I; k++)
            if (k >= cn[j]) (g2[k] += mod - g2[k - cn[j]]) %= mod;
          tog[i][j] = 1ll * ans * g2[n >> 1] * 2 % mod;
        }
    }
  cin >> m;
  for (int i = (0), I = (m); i < I; i++) {
    int first, second;
    cin >> first >> second, --first, --second, first = a[first],
                                               second = a[second];
    cout << tog[first][second] << '\n';
  }
  return 0;
}
