#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

#define rep(i,j) for(int i=0;i<(j);i++)

vector<int>Nail[5005];
int N, M;

int main(){
  scanf("%d%d", &N,&M);
  rep(i,5005) Nail[i].resize(i+3, 0);
  //  cout << 0 << endl;
  //  rep(i,N+1){ rep(j,Nail[i].size()) cout << Nail[i][j] << " "; cout << endl; }  
  rep(i,M){
    int A,B,X;
    scanf("%d%d%d", &A, &B, &X);
    Nail[A][B]++;
    Nail[A][B+1]--;
    Nail[A+X+1][B]--;
    Nail[A+X+2][B+1]++;
    Nail[A+X+1][B+X+2]++;
    Nail[A+X+2][B+X+2]--;
  }
  //  cout << 0 << endl;
  //  rep(i,N+3){ rep(j,Nail[i].size()) cout << Nail[i][j] << " "; cout << endl; }
  rep(i,N+3) rep(j,Nail[i].size()-1) Nail[i][j+1] += Nail[i][j];
  //  cout << 1 << endl;
  //  rep(i,N+3){ rep(j,Nail[i].size()) cout << Nail[i][j] << " "; cout << endl; }
  rep(i,N+3) for(int j=i;j<N+2;j++) Nail[j+1][i] += Nail[j][i];
  //  cout << 2 << endl;
  //  rep(i,N+3){ rep(j,Nail[i].size()) cout << Nail[i][j] << " "; cout << endl; }  
  rep(i,N+1) rep(j,Nail[i].size()-1) Nail[i+1][j+1] += Nail[i][j];
  //  cout << 3 << endl;
  //  rep(i,N+3){ rep(j,Nail[i].size()) cout << Nail[i][j] << " "; cout << endl; }
  int res = 0;
  rep(i,N+3) rep(j,Nail[i].size()) if(Nail[i][j]>0) res++;

  printf("%d\n", res);
  return 0;
}