#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:66777216")
using namespace std;
int a, b, c, d, n, m, k;
const int di[] = {0, 1, 0, -1};
const int dj[] = {1, 0, -1, 0};
int mas[129][129], nx[129][129];
int main() {
  scanf("%d", &n);
  mas[64][64] = n;
  int iter = 0;
  int mx = 0;
  while (1) {
    memset((nx), 0, sizeof(nx));
    bool upd = 0;
    for (int _n(128), i(63); i <= _n; i++) {
      for (int _n(128), j(63); j <= _n; j++) {
        if (mas[i][j] < 4) {
          nx[i][j] += mas[i][j];
          continue;
        }
        upd = 1;
        for (int _n((4) - 1), z(0); z <= _n; z++) {
          int ni = i + di[z];
          int nj = j + dj[z];
          if (ni < 0 || ni > 128 || nj < 0 || nj > 128) {
            continue;
          }
          ++nx[ni][nj];
        }
        nx[i][j] += mas[i][j] - 4;
      }
    }
    for (int _n((65) - 1), i(0); i <= _n; i++) {
      for (int _n((65) - 1), j(0); j <= _n; j++) {
        mas[i + 64][j + 64] = nx[i + 64][j + 64];
        mas[64 - i][j + 64] = nx[i + 64][j + 64];
        mas[i + 64][64 - j] = nx[i + 64][j + 64];
        mas[64 - i][64 - j] = nx[i + 64][j + 64];
      }
    }
    if (!upd) break;
  }
  scanf("%d", &m);
  for (int _n((m)-1), i(0); i <= _n; i++) {
    scanf("%d%d", &a, &b);
    if (abs(a) > 64 || abs(b) > 64)
      printf("0\n");
    else
      printf("%d\n", mas[a + 64][b + 64]);
  }
}
