#include <bits/stdc++.h>
using namespace std;
const int d[8][2] = {{-2, -1}, {-2, 1}, {-1, -2}, {-1, 2},
                     {1, -2},  {1, 2},  {2, -1},  {2, 1}};
int n, a[205][205], cnt[55];
const int tim = 40;
const int mo = 1000000007;
pair<int, int> q[40005];
long long k;
int main() {
  scanf("%lld%d", &k, &n);
  for (int i = 1; i <= n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    a[x + 100][y + 100] = -1;
  }
  a[100][100] = 1;
  int h = 0, t = 1;
  q[1] = pair<int, int>(100, 100);
  while (h != t) {
    pair<int, int> p = q[++h];
    if (a[p.first][p.second] == k + 1 || a[p.first][p.second] == tim + 1) break;
    for (int i = 0; i < 8; i++) {
      pair<int, int> np = p;
      np.first += d[i][0];
      np.second += d[i][1];
      if (!a[np.first][np.second]) {
        a[np.first][np.second] = a[p.first][p.second] + 1;
        cnt[a[np.first][np.second]]++;
        q[++t] = np;
      }
    }
  }
  if (k <= tim || cnt[tim + 1] == 0)
    printf("%d\n", t);
  else {
    long long p = k - tim, v1 = p, v2 = p + 1;
    if (v1 % 2)
      v2 /= 2;
    else
      v1 /= 2;
    printf("%d\n", ((v1 % mo) * (v2 % mo) % mo * 28 % mo +
                    p % mo * cnt[tim + 1] % mo + t) %
                       mo);
  }
}
