#include <bits/stdc++.h>
int max(int a, int b) {
  if (a > b) return a;
  return b;
}
int BM_search(char *T, char *P) {
  int shift[256];
  int i, j, t_len, p_len;
  t_len = strlen(T);
  p_len = strlen(P);
  for (i = 0; i < 256; i++) {
    shift[i] = p_len;
  }
  for (i = 0; i < p_len; i++) {
    shift[P[i]] = p_len - i - 1;
  }
  i = p_len - 1;
  while (i < t_len) {
    j = p_len - 1;
    while (T[i] == P[j]) {
      if (j == 0) {
        return i;
      }
      i--;
      j--;
    }
    i = i + max(shift[T[i]], p_len - j);
  }
  return -1;
}
int main(int argc, char const *argv[]) {
  char T[1000001];
  char P[1001];
  int i;
  int n;
  scanf("%s", T);
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%s", P);
    if (BM_search(T, P) == -1) {
      printf("0\n");
    } else {
      printf("1\n");
    }
  }
  return 0;
}
