#include <bits/stdc++.h>
using namespace std;
char s[12];
int w[12];
int val[1 << 12];
int ans[1 << 12][110];
int mst[1 << 12];
int main() {
  ios_base ::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, m, q;
  cin >> n >> m >> q;
  for (int i = 0; i < n; i++) cin >> w[i];
  while (m--) {
    cin >> (s + 1);
    reverse(s + 1, s + n + 1);
    int x = 0;
    for (int i = 1; i <= n; i++) x = x * 2 + s[i] - '0';
    mst[x]++;
  }
  for (int i = 0; i < 1 << n; i++) {
    for (int j = 0; j < n; j++) {
      if (i & (1 << j)) continue;
      val[i] += w[j];
    }
  }
  for (int i = 0; i < 1 << n; i++) {
    for (int j = 0; j < 1 << n; j++) {
      if (!mst[j]) continue;
      int x = i ^ j;
      if (val[x] <= 100) ans[i][val[x]] += mst[j];
    }
    for (int j = 1; j <= 100; j++) ans[i][j] += ans[i][j - 1];
  }
  while (q--) {
    int k;
    cin >> (s + 1);
    reverse(s + 1, s + n + 1);
    cin >> k;
    int x = 0;
    for (int i = 1; i <= n; i++) x = x * 2 + s[i] - '0';
    cout << ans[x][k] << endl;
  }
}
