#include<stdio.h>
#define max(p,q)((p)>(q)?(p):(q))
int n,m,q,a[51],b[51],c[51],d[51],A[51],ans;
	
	void dfs(int N){
			if(N==n+1){
				int sum=0;
				for(int i=0;i<q;i++){
					if(A[b[i]]-A[a[i]]==c[i]){ //A[0]は必ず１なので、A[b[i]-1]とはしない
					sum+=d[i];
					}
				}
				ans=max(ans,sum);
			}else{
				for(int i=A[N-1];i<=m;i++){
					A[N]=i;
					dfs(N+1);
				}
	}
}

int main(){
	
	scanf("%d %d %d",&n,&m,&q);
	for(int i=0;i<q;i++){
		scanf("%d %d %d %d",&a[i],&b[i],&c[i],&d[i]);
	}
	ans=0;
	A[0]=1;
	dfs(1);
	printf("%d\n",ans);
}