#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <cfloat>
#include <stack>
#include <queue>
#include <vector>
#include <string>
#include <iostream>
typedef long long int ll;
typedef unsigned long long int ull;
#define BIG_NUM 2000000000
#define MOD 1000000007
#define EPS 0.000000001
using namespace std;



int main(){

	int N,M;
	scanf("%d %d",&N,&M);

	int** left = new int*[N+2];
	int** right = new int*[N+2];

	for(int i = 0; i <= N+1; i++){
		left[i] = new int[N+2];
		right[i] = new int[N+2];
		for(int k = 0; k <= N+1; k++){
			left[i][k] = 0;
			right[i][k] = 0;
		}
	}

	int row,col,length;

	for(int loop = 0; loop < M; loop++){
		scanf("%d %d %d",&row,&col,&length);
		left[row][col]++;
		left[row+length+1][col]--;

		right[row][col+1]--;
		right[row+length+1][col+1+length+1]++;
	}

	int tmp_row,tmp_col;

	for(int row = 1; row <= N; row++){
		tmp_row = row;
		tmp_col = 1;

		while(tmp_row <= N && tmp_col <= N){
			tmp_row++;
			tmp_col++;

			right[tmp_row][tmp_col] += right[tmp_row-1][tmp_col-1];
		}
	}

	for(int col = 1; col <= N; col++){
		for(int row = col+1; row <= N; row++){
			left[row][col] += left[row-1][col];
		}
	}

	for(int row = 1; row <= N; row++){
		for(int col = 1; col <= row; col++){
			left[row][col] += right[row][col];
		}
	}

	for(int row = 1; row <= N; row++){
		for(int col = 1; col <= row; col++){
			left[row][col] += left[row][col-1];
		}
	}

	int ans = 0;

	for(int row = 1; row <= N; row++){
		for(int col = 1; col <= row; col++){
			if(left[row][col] > 0){
				ans++;
			}
		}
	}

	printf("%d\n",ans);

	return 0;
}