#include <bits/stdc++.h>
using namespace std;
int map1[200 + 1][200 + 1];
int map2[200 + 1][200 + 1];
int main() {
  int n, t;
  cin >> n >> t;
  map1[200 / 2][200 / 2] = n;
  int flag = 1;
  int turn = 1;
  while (flag) {
    flag = 0;
    if (turn == 1) {
      memset(map2, 0, (200 + 1) * (200 + 1) * sizeof(int));
      for (int i = 0; i <= 200; i++) {
        for (int j = 0; j <= 200; j++) {
          if (map1[i][j] < 4) {
            map2[i][j] += map1[i][j];
          } else {
            map2[i - 1][j] += map1[i][j] / 4;
            map2[i + 1][j] += map1[i][j] / 4;
            map2[i][j + 1] += map1[i][j] / 4;
            map2[i][j - 1] += map1[i][j] / 4;
            map2[i][j] += map1[i][j] % 4;
            flag = 1;
          }
        }
      }
      turn = 2;
    } else {
      memset(map1, 0, (200 + 1) * (200 + 1) * sizeof(int));
      for (int i = 0; i <= 200; i++) {
        for (int j = 0; j <= 200; j++) {
          if (map2[i][j] < 4) {
            map1[i][j] += map2[i][j];
          } else {
            map1[i - 1][j] += map2[i][j] / 4;
            map1[i + 1][j] += map2[i][j] / 4;
            map1[i][j + 1] += map2[i][j] / 4;
            map1[i][j - 1] += map2[i][j] / 4;
            map1[i][j] += map2[i][j] % 4;
            flag = 1;
          }
        }
      }
      turn = 1;
    }
  }
  int x, y;
  for (int i = 0; i < t; i++) {
    cin >> x >> y;
    if (abs(x) > 200 / 2 || abs(y) >= 200 / 2) {
      cout << 0 << endl;
    } else {
      if (turn == 1) {
        cout << map1[x + 200 / 2][y + 200 / 2] << endl;
      } else {
        cout << map2[x + 200 / 2][y + 200 / 2] << endl;
      }
    }
  }
  return 0;
}
