#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
template <class T>
using V = vector<T>;
template <class T, class U>
using P = pair<T, U>;
const ll MOD = (ll)1e9 + 7;
const ll MOD2 = 998244353;
const ll LLINF = (ll)1e18;
const ll INTINF = (ll)1e9;
const long double PI = 3.1415926535897932384626433;
template <class T>
void corner(bool flg, T hoge) {
  if (flg) {
    cout << hoge << endl;
    exit(0);
  }
}
template <class T, class U>
ostream &operator<<(ostream &o, const map<T, U> &obj) {
  o << "{";
  for (auto &x : obj)
    o << " {" << x.first << " : " << x.second << "}"
      << ",";
  o << " }";
  return o;
}
template <class T>
ostream &operator<<(ostream &o, const set<T> &obj) {
  o << "{";
  for (auto itr = obj.begin(); itr != obj.end(); ++itr)
    o << (itr != obj.begin() ? ", " : "") << *itr;
  o << "}";
  return o;
}
template <class T>
ostream &operator<<(ostream &o, const vector<T> &obj) {
  o << "{";
  for (int i = 0; i < (int)obj.size(); ++i) o << (i > 0 ? ", " : "") << obj[i];
  o << "}";
  return o;
}
template <class T, class U>
ostream &operator<<(ostream &o, const pair<T, U> &obj) {
  o << "{" << obj.first << ", " << obj.second << "}";
  return o;
}
template <template <class tmp> class T, class U>
ostream &operator<<(ostream &o, const T<U> &obj) {
  o << "{";
  for (auto itr = obj.begin(); itr != obj.end(); ++itr)
    o << (itr != obj.begin() ? ", " : "") << *itr;
  o << "}";
  return o;
}
void print(void) { cout << endl; }
template <class Head>
void print(Head &&head) {
  cout << head;
  print();
}
template <class Head, class... Tail>
void print(Head &&head, Tail &&...tail) {
  cout << head << " ";
  print(forward<Tail>(tail)...);
}
template <class T>
void chmax(T &a, const T b) {
  a = max<T>(a, b);
}
template <class T>
void chmin(T &a, const T b) {
  a = min<T>(a, b);
}
void YN(bool flg) { cout << ((flg) ? "YES" : "NO") << endl; }
void Yn(bool flg) { cout << ((flg) ? "Yes" : "No") << endl; }
void yn(bool flg) { cout << ((flg) ? "yes" : "no") << endl; }
int main() {
  ll X, K;
  cin >> X >> K;
  V<ll> r(K + 2, 0), u(K + 2, 0), v(K + 2, 0), w(K + 2, 0);
  for (int i = 1; i <= K; ++i) cin >> r[i];
  r[K + 1] = 10000000000;
  int Q;
  cin >> Q;
  V<ll> t(Q), a(Q);
  for (int i = 0; i < Q; ++i) cin >> t[i] >> a[i];
  V<P<ll, int>> ord(Q);
  for (int i = 0; i < Q; ++i) ord[i] = {a[i], i};
  sort((ord).begin(), (ord).end());
  for (int i = 1; i <= K + 1; ++i) w[i] = w[i - 1] + (i % 2 ? -1 : 1) * r[i];
  u[0] = 0;
  v[0] = X;
  for (int i = 1; i <= K + 1; ++i) {
    if (i % 2) {
      u[i] = max(u[i - 1] - (r[i] - r[i - 1]), 0LL);
      v[i] = max(v[i - 1] - (r[i] - r[i - 1]), 0LL);
    } else {
      u[i] = min(u[i - 1] + (r[i] - r[i - 1]), X);
      v[i] = min(v[i - 1] + (r[i] - r[i - 1]), X);
    }
  }
  V<int> idx(Q, K);
  for (int i = 0, j = 1; i < Q && j <= K + 1; ++i) {
    int k = ord[i].second;
    if (a[k] == 0) {
      chmin(idx[k], 0);
      continue;
    }
    while (a[k] + w[j] > u[j]) {
      if (j + 2 <= K + 1)
        j += 2;
      else
        break;
    }
    chmin(idx[k], j - 1);
  }
  for (int i = Q - 1, j = 2; 0 <= i && j <= K + 1; --i) {
    int k = ord[i].second;
    if (a[k] == 0) {
      chmin(idx[k], 0);
      continue;
    }
    while (a[k] + w[j] < v[j]) {
      if (j + 2 <= K + 1)
        j += 2;
      else
        break;
    }
    chmin(idx[k], j - 1);
  }
  V<ll> ans(Q);
  for (int i = 0; i < Q; ++i) {
    if (t[i] == 0) {
      ans[i] = a[i];
      continue;
    }
    int s = lower_bound((r).begin(), (r).end(), t[i]) - r.begin();
    s--;
    if (s <= idx[i]) {
      ans[i] = a[i] + w[s] + (s % 2 ? 1 : -1) * (t[i] - r[s]);
      if (s % 2)
        chmin(ans[i], X);
      else
        chmax(ans[i], 0LL);
    } else {
      if (idx[i] % 2) {
        ans[i] = v[s] + (s % 2 ? 1 : -1) * (t[i] - r[s]);
      } else {
        ans[i] = u[s] + (s % 2 ? 1 : -1) * (t[i] - r[s]);
      }
      if (s % 2)
        chmin(ans[i], X);
      else
        chmax(ans[i], 0LL);
    }
  }
  for (int i = 0; i < Q; ++i) cout << ans[i] << endl;
  return 0;
}
