/*
dp[i]=max(dp[j]+(dis<=tim))在 第i只老鼠 前 最多可以打多少只老鼠
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
//#include<queue>
//#include<vector>
//#include<bits/stdc++.h>
#define ll long long
#define ddd printf("-----------------------\n");
using namespace std;
const int maxn=1e4+10 ;
int n,m,dp[100010],a_x[maxn],a_y[maxn],a_tim[maxn],ans;
int main()
{
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=1;i<=m;i++) cin>>a_tim[i]>>a_x[i]>>a_y[i];
for(int i=1;i<=m;i++) dp[i]=1;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=i-1;j++)
{
if(abs(a_x[i]-a_x[j])+abs(a_y[i]-a_y[j])<=a_tim[i]-a_tim[j])
dp[i]=max(dp[i],dp[j]+1);
}
}
for(int i=1;i<=m;i++) ans=max(ans,dp[i]);
cout<<ans<<endl;
return 0;
}