#include <bits/stdc++.h>
using namespace std;
int main() {
  long long x, k;
  cin >> x >> k;
  vector<long long> r(k + 1);
  r[0] = 0;
  for (long long i = 1; i <= k; i++) cin >> r[i];
  long long d[k], u[k], da[k], ua[k];
  d[0] = 0;
  da[0] = 0;
  u[0] = x;
  ua[0] = x;
  for (long long i = 1; i <= k; i++) {
    long long t = r[i] - r[i - 1];
    if (i % 2 == 0) {
      if (da[i - 1] + t >= x) {
        d[i] = x;
        da[i] = x;
        u[i] = x;
        ua[i] = x;
      } else {
        da[i] = da[i - 1] + t;
        d[i] = d[i - 1];
        ua[i] = ua[i - 1] + t;
        u[i] = u[i - 1];
        if (ua[i] >= x) {
          u[i] = 2 * x - ua[i];
          ua[i] = x;
        }
      }
    } else {
      if (ua[i - 1] - t <= 0) {
        d[i] = 0;
        da[i] = 0;
        u[i] = 0;
        ua[i] = 0;
      } else {
        da[i] = da[i - 1] - t;
        d[i] = d[i - 1];
        ua[i] = ua[i - 1] - t;
        u[i] = u[i - 1];
        if (da[i] <= 0) {
          d[i] = d[i] - da[i];
          da[i] = 0;
        }
      }
    }
  }
  for (long long i = 0; i <= k; i++) {
  }
  long long q;
  cin >> q;
  for (long long i = 0; i < q; i++) {
    long long t, a;
    cin >> t >> a;
    long long e = upper_bound(r.begin(), r.end(), t) - r.begin();
    long long now;
    if (a <= d[e - 1])
      now = da[e - 1];
    else if (a >= u[e - 1])
      now = ua[e - 1];
    else
      now = a - d[e - 1] + da[e - 1];
    if (e % 2 == 1) {
      now -= t - r[e - 1];
      now = max((long long)0, now);
    } else {
      now += t - r[e - 1];
      now = min(x, now);
    }
    cout << now << endl;
  }
}
