#include <bits/stdc++.h>
using namespace std;
inline long long min(long long a, long long b) { return (a > b) ? b : a; }
inline long long max(long long a, long long b) { return (a > b) ? a : b; }
const int N = 1e5 + 7;
const int inf = 1e9 + 7;
const long long linf = 1e18 + 9;
int r[N];
int dif[N];
long long k, sum;
int main() {
  int x;
  scanf("%d %d", &x, &k);
  for (int i = 1; i <= k; i++) {
    scanf("%d", r + i);
    dif[i] = r[i] - r[i - 1];
  }
  int q;
  scanf("%d", &q);
  while (q--) {
    int t, a;
    scanf("%d %d", &t, &a);
    int up = lower_bound(r + 1, r + k + 1, t) - r;
    sum = a;
    for (int i = 1; i <= up - 1; i++) {
      if (i & 1) {
        sum -= dif[i];
        if (sum < 0) {
          sum = 0;
        }
      } else {
        sum += dif[i];
        if (sum > x) {
          sum = x;
        }
      }
    }
    if (up & 1) {
      sum -= (t - r[up - 1]);
    } else {
      sum += (t - r[up - 1]);
    }
    if (sum < 0) {
      sum = 0;
    } else if (sum > x) {
      sum = x;
    }
    printf("%lld\n", sum);
  }
}
