#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5;
const int oo=2e9;
int n,m;
int bit;
int a[N+5],b[N+5],p[N+5],d[N+5];
int s,t,c;
int maxn[N+5];
int used[N+5];
int ans=oo;
void mk(int l,int r,int c){
for(int i=l;i<=r;i++)
maxn[i]=max(maxn[i],c);
return ;
}
bool check(){
memset(used,0,sizeof(used));
int res=0;
for(int i=0;i<m;i++){
if(bit&(1<<i))
for(int j=a[i];j<=b[i];j++)
used[j]+=p[i];
res+=d[i];
}
for(int i=1;i<=100;i++)
if(used[i]<maxn[i])
return -1;
return res;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>s>>t>>c;
mk(s,t,c);
}
for(int i=1;i<=m;i++)
cin>>a[i]>>b[i]>>p[i]>>d[i];
bit=0;
while(bit<=(1<<m)-1){
int res=check();
if(res!=-1)
ans=min(ans,res);
bit++;
}
cout<<ans;
return 0;
}