#include<iostream>
using namespace std;
struct prolaz{
public: int poz1;
public: int poz2;
public: int prolaznost;
};
static void raz(prolaz &a,prolaz &b){
    prolaz tmp=a;
    a=b;
    b=tmp;
}
main(){
int n, m;
cin>>n>>m;
prolaz a[m];
for(int i=0; i<m;i++){
    cin>>a[i].poz1>>a[i].poz2>>a[i].prolaznost;
}
int u,v;
cin>>u>>v;
for (int i = 0; i < m; i++)
for (int j = i + 1; j < m; j++)
{
if (a[i].poz1 > a[j].poz1) raz( a[i], a[j]);
if (a[i].poz1 == a[j].poz1 && a[i].poz2 < a[j].poz2) raz( a[i], a[j]);
}
int br=1, max=0, prol=a[0].prolaznost;
for (int i = 0; i < m; i++){
    if(a[i].poz1==u&& a[i].poz2>max){ max= a[i].poz2;}
    if(a[i+1].poz1!=u) {
            u=max;
            if(a[i].prolaznost!=prol){ br++; prol=a[i].prolaznost;}
    }

}
cout<<br;
}