#include<stdio.h>
#define ull unsigned long long int
#define ll long long
#define rep(x) for(A[x]=A[x-1];A[x]<=10;A[x]++)

ll max(ll a,ll b){
  if(b>a)return b;
  return a;
};

typedef struct quatt{
  int a,b,c;
  long d;
}quat;

ll hyouka(quat q[],int n,int A[]){
  ll sum=0;
  for(int k=0;k<n;k++)
    if(A[q[k].b]-A[q[k].a]==q[k].c)
      sum+=q[k].d;
  return sum;
};
  


int main(){
  int N,M,Q;
  int A[11]={1,1,1,1,1,1,1,1,1,1,1};
  ll ans=0;
  scanf("%d%d%d",&N,&M,&Q);
  quat q[Q];
  for(int j=0;j<Q;j++){
    scanf("%d%d%d%ld",&q[j].a,&q[j].b,&q[j].c,&q[j].d);
  };
  for(A[1]=1;A[1]<=10;A[1]++)
    rep(2)rep(3)rep(4)rep(5)rep(7)rep(8)rep(9)rep(10){
    ans=max(hyouka(q,Q,A),ans);
  };
  printf("%lld",ans);      
};