#include <bits/stdc++.h>
using namespace std;
template <class T>
T abs(T x) {
  return x > 0 ? x : -x;
}
const int di[8] = {2, 1, -1, -2, -2, -1, 1, 2};
const int dj[8] = {1, 2, 2, 1, -1, -2, -2, -1};
const int mod = 1000000007;
const int MAX = 200;
long long n;
int m;
bool was[4 * MAX + 1][4 * MAX + 1];
bool forb[4 * MAX + 1][4 * MAX + 1];
short d[4 * MAX + 1][4 * MAX + 1];
pair<short, short> q[((4 * MAX + 1) * (4 * MAX + 1))];
int cnt[MAX + 1];
int main() {
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    a += 2 * MAX;
    b += 2 * MAX;
    forb[a][b] = 1;
  }
  int l = 0, r = 1;
  q[0] = make_pair(2 * MAX, 2 * MAX);
  was[2 * MAX][2 * MAX] = 1;
  while (l < r) {
    int i = q[l].first;
    int j = q[l].second;
    cnt[d[i][j]]++;
    l++;
    if (d[i][j] == n || d[i][j] == MAX) continue;
    for (int k = 0; k < 8; k++) {
      int ni = i + di[k];
      int nj = j + dj[k];
      if (!was[ni][nj] && !forb[ni][nj]) {
        was[ni][nj] = 1;
        d[ni][nj] = d[i][j] + 1;
        q[r++] = make_pair(ni, nj);
      }
    }
  }
  if (n > MAX && cnt[MAX] > 0) {
    int tmp = (n - MAX) % mod;
    r = (r + (long long)tmp * cnt[MAX]) % mod;
    r = (r + ((long long)tmp * (tmp + 1)) % mod * 14) % mod;
  }
  printf("%d\n", r);
  return 0;
}
