#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("sse4")
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  constexpr int MAX_PHOTOS = 1000000;
  constexpr int PAR = 32;
  int n, w, q;
  std::cin >> n >> w >> q;
  int photos[MAX_PHOTOS];
  for (int i = 0; i < n; ++i) {
    std::cin >> photos[i];
  }
  int k[PAR];
  int max_left[PAR];
  int min_right[PAR];
  int cuts[PAR];
  while (q > 0) {
    for (int i = 0; i < PAR; ++i) std::cin >> k[i];
    for (int i = 0; i < PAR; ++i) {
      k[i] = w - k[i];
      max_left[i] = min_right[i] = INT_MIN;
      cuts[i] = 1;
    }
    for (int i = 0; i < n; ++i) {
      for (int j = 0; j < PAR; ++j) {
        max_left[j] = std::max(max_left[j], photos[i]);
        min_right[j] = std::min(min_right[j], photos[i]);
        int new_cut = (min_right[j] + k[j]) < max_left[j];
        if (new_cut) new_cut = -1;
        max_left[j] += new_cut & (photos[i] - max_left[j]);
        min_right[j] += new_cut & (photos[i] - min_right[j]);
        cuts[j] += new_cut;
      }
    }
    for (int i = 0; i < std::min(PAR, q); ++i)
      std::cout << -cuts[i] << std::endl;
    q -= PAR;
  }
  return 0;
}
