#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#define F(i,a,n) for(int i=a; i<n; i++)

int max=0;
int n,m,q;
int *a,*b,*c,*d;
void dfs(int depth,int num,int *req){
  if(depth==n){
    int sum=0;
    F(i,0,n){
      if(req[b[i]-1] - req[a[i]-1] == c[i]) sum += d[i];
    }
    if(max<sum) max=sum;
    return;
  }
  req[depth]=num;
  while(num<=m){
    //req[depth]=num;
    dfs(depth+1,num,req);
    num++;
    req[depth]++;
  }  
}

int main(){
  scanf("%d%d%d",&n,&m,&q);
  a=(int*)malloc(sizeof(int)*q);
  b=(int*)malloc(sizeof(int)*q);
  c=(int*)malloc(sizeof(int)*q);
  d=(int*)malloc(sizeof(int)*q);
  F(i,0,q){
    scanf("%d%d%d%d",a+i,b+i,c+i,d+i);
  }
  int A[n];
  F(i,0,n)A[i]=0;
  dfs(0,1,A);
  printf("%d\n",max);
  return 0;
}


