#include<bits/stdc++.h>
using namespace std;
int n,g,ans;
struct QWQ{
int t;
int id;
int x;
void read() {cin>>t>>id>>x;}
} w[100005];
struct qwq{
int id;
int a;
bool operator <(const qwq a1) const {return a<=a1.a;}
};
bool cmp(QWQ a1,QWQ a2) {return a1.t<a2.t;}
priority_queue<qwq> pq;
map<int,int> mp;
int main()
{
cin>>n>>g;
pq.push({0,0});
for(int i=1;i<=n;i++)
w[i].read();
sort(w+1,w+n+1,cmp);
for(int i=1;i<=n;i++)
{
int num=w[i].id,x=w[i].x;
while(!pq.empty()&&mp[pq.top().id]!=pq.top().a) pq.pop();
int f=pq.top().a;
if(f<mp[num]+x)
ans++;
if(f==mp[num]+x&&mp[num]<f)
ans++;
if(f>mp[num]+x&&mp[num]==f)
ans++;
mp[num]+=x;
pq.push({num,mp[num]});
}
cout<<ans;
return 0;
}