#include <bits/stdc++.h>
using namespace std;
const int hhh = 2333;
int rec[101010], ff[101010];
int maxn, a[101010], n, stu, deep;
int main() {
  scanf("%d", &maxn);
  scanf("%d", &n);
  a[n + 1] = 2000101022;
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  int rem = 0, stu = 0;
  for (int j = 1; j <= n; j++) {
    if (j & 1) {
      rem -= a[j] - a[j - 1];
    } else
      rem += a[j] - a[j - 1];
    if (rem >= maxn) stu = 1;
    if (stu) {
      ff[j] = hhh;
      if (rem >= maxn)
        rec[j] = rem = maxn;
      else if (rem < 0)
        rec[j] = rem = 0;
      else
        rec[j] = rem;
    } else {
      deep = rem < deep ? rem : deep;
      rem = rem < 0 ? 0 : rem;
      rec[j] = rem;
      ff[j] = deep;
    }
  }
  int q, x, y;
  scanf("%d", &q);
  for (int i = 1; i <= q; i++) {
    scanf("%d%d", &x, &y);
    int j = upper_bound(a, a + 1 + n, x) - a - 1, ans;
    if (ff[j] == hhh) {
      if (j & 1 == 0) {
        ans = rec[j] - (x - a[j]);
        ans = ans < 0 ? 0 : ans;
      } else {
        ans = rec[j] + (x - a[j]);
        ans = ans < maxn ? ans : maxn;
      }
    } else {
      ans = ff[j] + y;
      ans = ans < 0 ? 0 : ans;
      ans = ans < maxn ? ans : maxn;
      if ((j & 1) == 0) {
        ans += rec[j] - (x - a[j]);
        ans = ans < 0 ? 0 : ans;
      } else {
        ans += rec[j] + (x - a[j]);
        ans = ans < maxn ? ans : maxn;
      }
    }
    printf("%d\n", ans);
  }
  return 0;
}
