#include <bits/stdc++.h>
using namespace std;
int n, m, q;
int w[15];
int v[5000][200];
int mmp[5000];
char d[50];
int main() {
  scanf("%d%d%d", &n, &m, &q);
  for (int i = 0; i < n; i++) {
    scanf("%d", &w[n - i - 1]);
  }
  for (int i = 0; i < m; i++) {
    scanf("%s", d);
    int num = 0;
    for (int o = 0; d[o]; o++) {
      num = num * 2 + d[o] - '0';
    }
    mmp[num]++;
  }
  for (int i = 0; i < (1 << n); i++) {
    for (int o = 0; o < (1 << n); o++) {
      int now = i ^ o;
      int num = 0;
      for (int j = 0; j < n; j++) {
        if (!(now & (1 << j))) num = num + w[j];
      }
      if (num <= 100) v[i][num] += mmp[o];
    }
  }
  for (int i = 0; i < (1 << n); i++) {
    for (int o = 1; o <= 100; o++) {
      v[i][o] += v[i][o - 1];
    }
  }
  for (int i = 1; i <= q; i++) {
    scanf("%s%d", d, &m);
    int num = 0;
    for (int o = 0; d[o]; o++) {
      num = num * 2 + d[o] - '0';
    }
    printf("%d\n", v[num][m]);
  }
  return 0;
}
