#include<iostream>
#include<cstdio>
using namespace std;
struct node
{
int x;
int y;
int tim;
long long val;
};
node locate[100000];
bool check(node i1,node i2)
{
if(abs(i1.x-i2.x)+abs(i1.y-i2.y)<=abs(i1.tim-i2.tim))
return 1;
else
return 0;
}
int main()
{
int n,m;cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>locate[i].tim>>locate[i].x>>locate[i].y;
locate[i].val=1;
for(int j=i-1;j>=1;j--)
{
if(check(locate[i],locate[j])) locate[i].val=max(locate[i].val,locate[j].val+1);
}
}
cout<<locate[m].val<<endl;
}