#include <bits/stdc++.h>   using namespace std;   #pragma GCC target( avx2 )   #pragma GCC optimization( unroll-loops )   #pragma GCC optimize( O2 )   constexpr int dx[] = {-1, 0, 1, 0, 1, 1, -1, -1};   constexpr int dy[] = {0, -1, 0, 1, 1, -1, 1, -1};   constexpr long long INF = 1999999999999999997;   constexpr int inf = INT_MAX;   constexpr int MAXSIZE = int(1e6) + 5;   constexpr auto PI = 3.14159265358979323846L;   constexpr auto oo = numeric_limits<int>::max() / 2 - 2;   constexpr auto eps = 1e-6;   constexpr auto mod = 1000000007;   constexpr auto MOD = 1000000007;   constexpr auto MOD9 = 1000000009;   constexpr auto maxn = 100006;   template <typename T, size_t N>   int SIZE(const T (&t)[N]) {     return N;   }   template <typename T>   int SIZE(const T &t) {     return t.size();   }   string to_string(string s, int x1 = 0, int x2 = 1e9) {     return     + ((x1 < s.size()) ? s.substr(x1, x2 - x1 + 1) :   ) +    ;   }   string to_string(const char *s) { return to_string((string)s); }   string to_string(bool b) { return (b ?  true  :  false ); }   string to_string(char c) { return string({c}); }   template <size_t N>   string to_string(bitset<N> &b, int x1 = 0, int x2 = 1e9) {     string t =   ;     for (int __iii__ = min(x1, SIZE(b)), __jjj__ = min(x2, SIZE(b) - 1);          __iii__ <= __jjj__; ++__iii__) {       t += b[__iii__] +  0 ;     }     return     + t +    ;   }   template <typename A, typename... C>   string to_string(A(&v), int x1 = 0, int x2 = 1e9, C... coords);   int l_v_l_v_l = 0, t_a_b_s = 0;   template <typename A, typename B>   string to_string(pair<A, B> &p) {     l_v_l_v_l++;     string res =  (  + to_string(p.first) +  ,   + to_string(p.second) +  ) ;     l_v_l_v_l--;     return res;   }   template <typename A, typename... C>   string to_string(A(&v), int x1, int x2, C... coords) {     int rnk = rank<A>::value;     string tab(t_a_b_s,    );     string res =   ;     bool first = true;     if (l_v_l_v_l == 0) res +=   n ;     res += tab +  [ ;     x1 = min(x1, SIZE(v)), x2 = min(x2, SIZE(v));     auto l = begin(v);     advance(l, x1);     auto r = l;     advance(r, (x2 - x1) + (x2 < SIZE(v)));     for (auto e = l; e != r; e = next(e)) {       if (!first) {         res +=  ,  ;       }       first = false;       l_v_l_v_l++;       if (e != l) {         if (rnk > 1) {           res +=   n ;           t_a_b_s = l_v_l_v_l;         };       } else {         t_a_b_s = 0;       }       res += to_string(*e, coords...);       l_v_l_v_l--;     }     res +=  ] ;     if (l_v_l_v_l == 0) res +=   n ;     return res;   }   void dbgs() { ; }   template <typename Heads, typename... Tails>   void dbgs(Heads H, Tails... T) {     cout << to_string(H) <<   |  ;     dbgs(T...);   }   int main() {     int n, d;     cin >> n >> d;     int m;     cin >> m;     while (m--) {       int x, y;       cin >> x >> y;       if (x + y - d >= 0 && y + x - 2 * n + d <= 0 && y - x - d <= 0 &&           x - y - d <= 0)         cout <<  YES               <<   n ;       else {         cout <<  NO               <<   n ;       }     }   }   