#include <bits/stdc++.h>
long long X, n, v, k, Q;
bool sx = 1;
struct shalou {
  long long t;
  long long va;
};
struct xunwen {
  long long aq;
  long long tq;
  long long ans;
};
xunwen *x;
shalou *s, *zero, *eks;
int main() {
  scanf("%d%d", &X, &n);
  s = new shalou[n + 1];
  zero = new shalou[n + 1];
  eks = new shalou[n + 1];
  for (long long i = 1; i <= n; i++) {
    scanf("%d", &s[i].t);
    zero[i].t = s[i].t;
    eks[i].t = s[i].t;
  }
  zero[n + 1].t = s[n + 1].t = eks[n + 1].t = s[n].t + 100000;
  scanf("%d", &Q);
  x = new xunwen[Q + 1];
  for (int i = 1; i <= Q; i++) scanf("%d%d", &x[i].tq, &x[i].aq);
  s[0].t = zero[0].t = eks[0].t = 0;
  zero[0].va = 0;
  eks[0].va = X;
  for (k = 1; k <= n + 1; k++) {
    if (sx == 1) {
      zero[k].va = zero[k - 1].va - (zero[k].t - zero[k - 1].t);
      if (zero[k].va < 0) zero[k].va = 0;
      sx = 0;
    } else {
      zero[k].va = zero[k - 1].va + (zero[k].t - zero[k - 1].t);
      if (zero[k].va > X) zero[k].va = X;
      sx = 1;
    }
  }
  sx = 1;
  for (k = 1; k <= n + 1; k++) {
    if (sx == 1) {
      eks[k].va = eks[k - 1].va - (eks[k].t - eks[k - 1].t);
      if (eks[k].va < 0) eks[k].va = 0;
      sx = 0;
    } else {
      eks[k].va = eks[k - 1].va + (eks[k].t - eks[k - 1].t);
      if (eks[k].va > X) eks[k].va = X;
      sx = 1;
    }
  }
  sx = 1;
  long long l = 1;
  while (zero[l].va != eks[l].va) l++;
  for (long long i = 1; i <= Q; i++) {
    s[0].va = x[i].aq;
    long long j = 1;
    while (x[i].tq > s[j].t) j++;
    if (s[j - 1].t >= zero[l].t) {
      if (j % 2 != 0) {
        x[i].ans = zero[j - 1].va - (x[i].tq - zero[j - 1].t);
        if (x[i].ans < 0) x[i].ans = 0;
      } else {
        x[i].ans = zero[j - 1].va + (x[i].tq - zero[j - 1].t);
        if (x[i].ans > X) x[i].ans = X;
        sx = 1;
      }
    } else {
      for (k = 1; k < j; k++) {
        if (sx == 1) {
          s[k].va = s[k - 1].va - (s[k].t - s[k - 1].t);
          sx = 0;
        } else {
          s[k].va = s[k - 1].va + (s[k].t - s[k - 1].t);
          sx = 1;
        }
      }
      if (s[k - 1].va <= zero[k - 1].va)
        s[k - 1].va = zero[k - 1].va;
      else if (s[k - 1].va >= eks[k - 1].va)
        s[k - 1].va = eks[k - 1].va;
      else {
        sx = 1;
        for (k = 1; k < j; k++) {
          if (sx == 1) {
            s[k].va = s[k - 1].va - (s[k].t - s[k - 1].t);
            if (s[k].va < 0) s[k].va = 0;
            sx = 0;
          } else {
            s[k].va = s[k - 1].va + (s[k].t - s[k - 1].t);
            if (s[k].va > X) s[k].va = X;
            sx = 1;
          }
        }
      }
      if (sx == 1) {
        x[i].ans = s[k - 1].va - (x[i].tq - s[k - 1].t);
        if (x[i].ans < 0) x[i].ans = 0;
      } else {
        x[i].ans = s[k - 1].va + (x[i].tq - s[k - 1].t);
        if (x[i].ans > X) x[i].ans = X;
        sx = 1;
      }
    }
    printf("%lld\n", x[i].ans);
  }
  return 0;
}
