调不出黄题,这个人糖丸了。
//writer:Oier_szc
#include <bits/stdc++.h>
//#include <windows.h>
#define ED cerr<<endl;
#define TS cerr<<"I AK IOI"<<endl;
#define cr(x) cerr<<x<<endl;
#define cr2(x,y) cerr<<x<<" "<<y<<endl;
#define cr3(x,y,z) cerr<<x<<" "<<y<<" "<<z<<endl;
#define cr4(x,y,z,w) cerr<<x<<" "<<y<<" "<<z<<" "<<w<<endl;
#define pii pair<int,int>
#define mk make_pair
#define fi first
#define se second
#define ll long long
//#define ull unsigned long long
using namespace std;
const int N=2e3+5,M=1e7+50,INF=2e9;
const int mod[3]={10000019,9999677,9779779};
const int base[3]={6869,5021,2999};
int n,up;
int a[N][3];
int has[3][M];
int getval(int x,int y,int z,int id) {
return (1ll*x*base[id]*base[id]+1ll*y*base[id]+z)%mod[id];
}
bool check(int x,int y,int z) {
for(int i=0;i<3;++i) {
if(!has[i][getval(x,y,z,i)]) {
return false;
}
}
return true;
}
signed main()
{
//freopen("qwq.in","r",stdin);
scanf("%d%d",&up,&n);
for(int i=1;i<=n;++i) {
for(int j=0;j<3;++j) {
scanf("%d",&a[i][j]);
}
for(int j=0;j<3;++j) {
has[j][getval(a[i][0],a[i][1],a[i][2],j)]=1;
}
}
int ans=0;
for(int i=1;i<=n;++i) {
for(int j=a[i][2]+1;j<=up;++j) {
if(check(a[i][0],a[i][1],j)&&check(a[i][1],a[i][2],j)&&check(a[i][0],a[i][2],j)) {
++ans;
}
}
}
printf("%d",ans);
return 0;
}