#include <bits/stdc++.h>
using namespace std;
const int N = 220005;
char s1[N], s2[N];
unsigned long long fl1[N], fl2[N];
unsigned long long Fl1[64][N >> 6];
unsigned long long Fl2[64][N >> 6];
int n, m, Q;
int main() {
  scanf("%s", s1 + 1);
  scanf("%s", s2 + 1);
  n = strlen(s1 + 1);
  m = strlen(s2 + 1);
  for (int i = (int)(n); i >= (int)(1); i--)
    fl1[i] = Fl1[i & 63][i >> 6] = (fl1[i + 1] << 1) | (s1[i] - '0');
  for (int i = (int)(m); i >= (int)(1); i--)
    fl2[i] = Fl2[i & 63][i >> 6] = (fl2[i + 1] << 1) | (s2[i] - '0');
  scanf("%d", &Q);
  while (Q--) {
    int x, y, l, ans = 0;
    scanf("%d%d%d", &x, &y, &l);
    ++x;
    ++y;
    unsigned long long *f1 = Fl1[x & 63], *f2 = Fl2[y & 63];
    int p1 = x >> 6, p2 = y >> 6;
    x &= 63;
    y &= 63;
    for (; l >= 512; l -= 512, p1 += 8, p2 += 8) {
      ans += __builtin_popcountll(f1[p1] ^ f2[p2]);
      ans += __builtin_popcountll(f1[p1 + 1] ^ f2[p2 + 1]);
      ans += __builtin_popcountll(f1[p1 + 2] ^ f2[p2 + 2]);
      ans += __builtin_popcountll(f1[p1 + 3] ^ f2[p2 + 3]);
      ans += __builtin_popcountll(f1[p1 + 4] ^ f2[p2 + 4]);
      ans += __builtin_popcountll(f1[p1 + 5] ^ f2[p2 + 5]);
      ans += __builtin_popcountll(f1[p1 + 6] ^ f2[p2 + 6]);
      ans += __builtin_popcountll(f1[p1 + 7] ^ f2[p2 + 7]);
    }
    for (; l >= 64; l -= 64, p1++, p2++)
      ans += __builtin_popcountll(f1[p1] ^ f2[p2]);
    x = (p1 << 6) | x;
    y = (p2 << 6) | y;
    for (; l; --l, ++x, ++y) ans += (s1[x] != s2[y]);
    printf("%d\n", ans);
  }
}
