#include <iostream>
#include <cstring>
using namespace std;
int t[105],vis[10],a[15],b[15],c[15],d[15],ans=1e9;
int st[105];
int n,m;
void dfs(int u,int sum){
if(u==m+1){
memset(st,0,sizeof st);
for(int i=1;i<=m;i++){
if(vis[i]){
for(int j=a[i];j<=b[i];j++){
st[j]+=c[i];
}
}
}
for(int i=0;i<=100;i++){
if(st[i]<t[i]){
return ;
}
}
ans=min(ans,sum);
return ;
}
vis[u]=1;
dfs(u+1,sum+d[u]);
vis[u]=0;
dfs(u+1,sum);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
int a,b,c;
cin>>a>>b>>c;
for(int j=a;j<=b;j++){
t[j]+=c;
}
}
for(int i=1;i<=m;i++){
cin>>a[i]>>b[i]>>c[i]>>d[i];
}
dfs(1,0);
cout<<ans;
return 0;
}