#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
int r[N], a[N], b[N], z[N];
int main() {
  int x, k;
  scanf("%d%d", &x, &k);
  int ty = -1;
  a[0] = 0, b[0] = x;
  for (int i = 1; i <= k; i++) {
    scanf("%d", &r[i]);
    int tmp = r[i] - r[i - 1];
    a[i] = a[i - 1], b[i] = b[i - 1], z[i] = z[i - 1];
    if (i & 1) {
      if (z[i] >= tmp)
        z[i] -= tmp;
      else if (tmp <= b[i] - a[i] + z[i])
        a[i] += tmp - a[i], z[i] = 0;
      else
        z[i] = 0, a[i] = 0, b[i] = 0;
    } else {
      if (z[i] + b[i] - a[i] + tmp <= x)
        z[i] += tmp;
      else if (z[i] + tmp <= x)
        z[i] += tmp, b[i] -= z[i] + b[i] - a[i] - x;
      else
        z[i] = x, a[i] = 0, b[i] = 0;
    }
  }
  int q;
  scanf("%d", &q);
  for (int i = 1; i <= q; i++) {
    int a0, t0;
    scanf("%d%d", &t0, &a0);
    int tmp = (upper_bound(r + 1, r + 1 + k, t0) - r) - 1;
    int ans;
    if (a0 <= a[tmp])
      ans = z[tmp];
    else if (a0 <= b[tmp])
      ans = z[tmp] + a0 - a[tmp];
    else
      ans = z[tmp] + b[tmp] - a[tmp];
    int tx = t0 - r[tmp];
    if ((tmp + 1) & 1)
      ans = max(0, ans - tx);
    else
      ans = min(x, ans + tx);
    printf("%d\n", ans);
  }
  return 0;
}
