/*
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;
}