#include <bits/stdc++.h>
using namespace std;
int x, k, q;
int t[100000];
pair<int, int> query[100000];
int a, b;
int t_index = 0;
int a_now, t_prev;
int nibu(int low, int hi, int t_now) {
  if (t[low] > t_now) return 0;
  if (t[hi] < t_now) return hi + 1;
  while (low + 1 < hi) {
    int k = (low + hi) / 2;
    if (t[k] > t_now) {
      hi = k;
    } else if (t[k] < t_now) {
      low = k;
    } else {
      return k + 1;
    }
  }
  return low + 1;
}
int main() {
  scanf("%d", &x);
  scanf("%d", &k);
  for (int i = 0; i < k; i++) {
    scanf("%d", &t[i]);
  }
  scanf("%d", &q);
  for (int i = 0; i < q; i++) {
    scanf("%d %d", &b, &a);
    query[i] = make_pair(b, a);
  }
  for (int i = 0; i < q; i++) {
    t_index = nibu(0, k - 1, query[i].first);
    a_now = query[i].second;
    t_prev = 0;
    for (int j = 0; j < t_index; j++) {
      if (j % 2 == 1) {
        a_now = min(x, a_now + t[j] - t_prev);
      } else {
        a_now = max(0, a_now - (t[j] - t_prev));
      }
      t_prev = t[j];
    }
    if (t_index % 2) {
      a_now = min(x, a_now + query[i].first - t_prev);
    } else {
      a_now = max(0, a_now - (query[i].first - t_prev));
    }
    printf("%d\n", a_now);
  }
}
