#include<bits/stdc++.h>
using namespace std;

using ll=long long;
using ull=unsigned long long;
using i128=__int128_t;
using u128=__uint128_t;
using ld=long double;

void solve()
{//这道题我们可以很自然的想到使用差分 但是问题在于 假如只有一个差分数组 我们无法根据数值大小来判断一个桶拥有哪种油漆
//所以我们可以想到 维护三个差分数组 分别判断三种颜色是否加入 差分过程也很简单 例如k==1时 我们对第一个数组进行差分
//最后对差分数组进行判断 对于第i个元素 数组1和数组2大于0 数组3=0 即为绿色 计数
    int n,q,l,r,k,cnt=0;
    cin >> n >> q;
    vector<int>v1(n+2,0),v2(n+2,0),v3(n+2,0);//防止越界
    while(q--)
    {
        cin >> l >> r >> k;
        if(k==1)
        {
            v1[l]+=1;
            v1[r+1]-=1;
        }
        else if(k==2)
        {
            v2[l]+=1;
            v2[r+1]-=1;
        }
        else
        {
            v3[l]+=1;
            v3[r+1]-=1;
        }
    }
    for(int i=1;i<=n;i++)
    {
        v1[i]+=v1[i-1];
        v2[i]+=v2[i-1];
        v3[i]+=v3[i-1];
        if(v1[i]>0&&v2[i]>0&&v3[i]==0) cnt++;//有黄有蓝无红 计数
    }
    cout << cnt;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	
	int t=1;
	//cin >> t;
	
	while(t--)
	{
		solve();
	}
	return 0;
}