#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9 + 7;
const long long linf = 1e18 + 7;
const long long hh = 523;
const int mod = 1073741824;
int n, m, q;
int w[17];
int sum[1 << 12];
int ans[1 << 12][107];
int h[1 << 12];
int main() {
  scanf("%d%d%d", &n, &m, &q);
  for (int i = 0; i < n; i++) {
    scanf("%d", w + i);
  }
  for (int i = 0; i < (1 << n); i++) {
    int t = 0;
    for (int j = 0; j < n; j++) {
      if (!(i & (1 << j))) {
        t += w[n - j - 1];
      }
    }
    h[i] = min(t, 101);
  }
  char c;
  for (int i = 0; i < m; i++) {
    int t = 0;
    cin.ignore();
    for (int j = 0; j < n; j++) {
      c = getchar();
      t = t * 2 + int(c - '0');
    }
    sum[t]++;
  }
  for (int i = 0; i < (1 << n); i++) {
    int t;
    for (int j = 0; j < (1 << n); j++) {
      if (!sum[j]) {
        continue;
      }
      t = h[i ^ j];
      if (t > 100) {
        t = 101;
      }
      ans[i][t] += sum[j];
    }
    for (int j = 1; j <= 100; j++) {
      ans[i][j] += ans[i][j - 1];
    }
  }
  int k;
  while (q--) {
    int t = 0;
    cin.ignore();
    for (int j = 0; j < n; j++) {
      c = getchar();
      t = t * 2 + int(c - '0');
    }
    scanf(" %d", &k);
    printf("%d\n", ans[t][k]);
  }
  return 0;
}
