#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
using namespace std;
const int N=1e5+10;
const int M=1e6;
int n,m,num[N*3],tot,lz[N*12],maxn[N*12];
ll res=1;
int read()
{
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return x*f;
}
struct Node1{int y,l,r;}a[N];
struct Node2{int x,l,r;};
vector<Node2>b,c;
int id(int x){return lower_bound(num+1,num+1+tot,x)-num;}
void pushdown(int idx)
{
int t=lz[idx];
lz[idx]=0,lz[idx<<1]+=t,lz[idx<<1|1]+=t;
maxn[idx<<1]+=t,maxn[idx<<1|1]+=t;
}
void add(int idx,int l,int r,int a,int b)
{
if(l>=a&&r<=b){lz[idx]++,maxn[idx]++;return;}
pushdown(idx);
int mid=(l+r)>>1;
if(b<=mid)add(idx<<1,l,mid,a,b);
else if(a>mid)add(idx<<1|1,mid+1,r,a,b);
else add(idx<<1,l,mid,a,b),add(idx<<1|1,mid+1,r,a,b);
maxn[idx]=max(maxn[idx<<1],maxn[idx<<1|1]);
}
int query(int idx,int l,int r,int x)
{
if(l==r)return maxn[idx];
pushdown(idx);
int mid=(l+r)>>1;
if(x<=mid)return query(idx<<1,l,mid,x);
else return query(idx<<1|1,mid+1,r,x);
}
int main()
{
n=read(),m=read();
for(int i=1;i<=n;i++)
{
a[i].y=read(),a[i].l=read(),a[i].r=read();
num[++tot]=a[i].l,num[++tot]=a[i].r;
res+=(a[i].l==0&&a[i].r==M);
}
sort(a+1,a+1+n,[&](Node1 o1,Node1 o2){return o1.y<o2.y;});
for(int i=1;i<=m;i++)
{
int x=read(),l=read(),r=read();
if(l==0)b.pb(Node2{x,l,r});else c.pb(Node2{x,l,r});
num[++tot]=x,res+=(l==0&&r==M);
}
sort(num+1,num+1+tot);
tot=unique(num+1,num+1+tot)-num-1;
sort(b.begin(),b.end(),[&](Node2 o1,Node2 o2){return o1.r<o2.r;});
for(int i=0,j=1;i<b.size();i++)
{
while(j<=n&&a[j].y<=b[i].r)add(1,1,tot,id(a[j].l),id(a[j].r)),j++;
int t=query(1,1,tot,id(b[i].x));
res+=t;
}
memset(lz,0,sizeof(lz));
memset(maxn,0,sizeof(maxn));
sort(c.begin(),c.end(),[&](Node2 o1,Node2 o2){return o1.l>o2.l;});
for(int i=0,j=n;i<c.size();i++)
{
while(j>0&&a[j].y>=c[i].l)add(1,1,tot,id(a[j].l),id(a[j].r)),j--;
int t=query(1,1,tot,id(c[i].x));
res+=t;
}
printf("%lld\n",res);
return 0;
}