#include <bits/stdc++.h>
using namespace std;
int min(int x, int y) { return x < y ? x : y; }
const int N = 1e5 + 10;
char s[N], T[N];
int f1[N], f2[N], g1[N], g2[N];
int main(int argc, char const *argv[]) {
  scanf("%s", s + 1);
  scanf("%s", T + 1);
  for (int i = 1; s[i] >= 'A' && s[i] <= 'C'; i++) {
    f2[i] = f2[i - 1];
    if (s[i] == 'A')
      f1[i] = f1[i - 1] + 1;
    else
      f2[i]++;
  }
  for (int i = 1; T[i] >= 'A' && T[i] <= 'C'; i++) {
    g2[i] = g2[i - 1];
    if (T[i] == 'A')
      g1[i] = g1[i - 1] + 1;
    else
      g2[i]++;
  }
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    int x1, y1, x2, y2;
    scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
    int p1 = min(y1 - x1 + 1, f1[y1]), p2 = min(y2 - x2 + 1, g1[y2]);
    int q1 = f2[y1] - f2[x1 - 1], q2 = g2[y2] - g2[x2 - 1];
    if (q1 > q2 || ((q2 - q1) % 2) || p1 < p2)
      printf("0");
    else if ((q1 == q2 && (p1 - p2) % 3) || (!q1 && q2 && p1 == p2))
      printf("0");
    else
      printf("1");
  }
  return 0;
}
