#include <bits/stdc++.h>
using namespace std;
long long X;
struct func {
  long long L, R;
  long long l, r;
};
struct event {
  bool c;
  long long t;
  long long a;
};
bool operator<(event a, event b) { return a.t < b.t; }
func make(func f, long long q, bool inc) {
  func g;
  if (inc) {
    if (f.l + q >= X) {
      g.L = X;
      g.R = X;
      g.l = X;
      g.r = X;
    } else if (f.r + q <= X) {
      g.L = f.L;
      g.R = f.R;
      g.l = f.l + q;
      g.r = f.r + q;
    } else {
      long long ct = f.r - q;
      g.L = f.L;
      g.R = f.L + ct;
      g.l = f.l + q;
      g.r = X;
    }
  } else {
    if (f.l - q >= 0) {
      g.L = f.L;
      g.R = f.R;
      g.l = f.l - q;
      g.r = f.r - q;
    } else if (f.r - q <= 0) {
      g.L = X;
      g.R = X;
      g.l = 0;
      g.r = 0;
    } else {
      long long ct = q - f.l;
      g.L = f.L + ct;
      g.R = f.R;
      g.l = 0;
      g.r = f.r - q;
    }
  }
  return g;
}
int main() {
  ios::sync_with_stdio(false);
  long long K;
  cin >> X >> K;
  vector<event> G;
  for (int i = 0; i < K; i++) {
    event n;
    cin >> n.t;
    n.c = 1;
    G.push_back(n);
  }
  int Q;
  cin >> Q;
  for (int i = 0; i < Q; i++) {
    event n;
    cin >> n.t >> n.a;
    n.c = 0;
    G.push_back(n);
  }
  sort(G.begin(), G.end());
  func f;
  f.L = 0;
  f.R = X;
  f.l = 0;
  f.r = X;
  long long crt = 0;
  bool sg = 0;
  vector<long long> sol;
  for (int i = 0; i < G.size(); i++) {
    event q = G[i];
    if (q.c == 1) {
      func g = make(f, q.t - crt, sg);
      crt = q.t;
      f = g;
      sg = !sg;
    } else {
      func g = make(f, q.t - crt, sg);
      crt = q.t;
      f = g;
      long long a = q.a;
      if (a <= f.L) {
        sol.push_back(f.l);
      } else if (a <= f.R) {
        sol.push_back(f.l + a - f.L);
      } else {
        sol.push_back(f.r);
      }
    }
  }
  for (int i = 0; i < sol.size(); i++) cout << sol[i] << endl;
  return 0;
}
