#include <bits/stdc++.h>
using namespace std;
const int maxx = 1e5 + 100;
const int INF = 1e9;
const int MOD = 1e9 + 7;
long long tt[maxx], d[maxx];
int main() {
  long long x, b;
  scanf("%lld", &x);
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &tt[i]);
    d[i] = tt[i] - tt[i - 1];
  }
  int m;
  scanf("%d", &m);
  for (int i = 0; i < m; i++) {
    long long t, a;
    scanf("%lld%lld", &t, &a);
    if (t == 0) {
      printf("%lld\n", a);
      continue;
    }
    long long l = 1, r = n;
    while (l < r) {
      long long mid = (l + r) >> 1;
      if (t > tt[mid])
        l = mid + 1;
      else
        r = mid;
    }
    if (t >= tt[l]) {
      for (int i = 1; i <= l; i++) {
        if (i % 2 != 0) {
          a -= d[i];
          if (a < 0) a = 0;
        } else {
          a += d[i];
          if (a > x) a = x;
        }
      }
      if (l == n && t > tt[l]) {
        if (n % 2 != 0) {
          a += (t - tt[l]);
          if (a > x) a = x;
        } else {
          a -= (t - tt[l]);
          if (a < 0) a = 0;
        }
      } else if (tt[l] < t) {
        if ((l) % 2 != 0) {
          a -= (t - tt[l]);
          if (a < 0) a = 0;
        } else {
          a += (t - tt[l]);
          if (a > x) a = x;
        }
      }
    } else {
      for (int i = 1; i < l; i++) {
        if (i % 2 != 0) {
          a -= d[i];
          if (a < 0) a = 0;
        } else {
          a += d[i];
          if (a > x) a = x;
        }
      }
      if (tt[l - 1] < t) {
        if ((l - 1) % 2 != 0) {
          a += (t - tt[l - 1]);
          if (a > x) a = x;
        } else {
          a -= (t - tt[l - 1]);
          if (a < 0) a = 0;
        }
      }
    }
    printf("%lld\n", a);
  }
  return 0;
}
