#include <bits/stdc++.h>
using namespace std;
using ll=long long;
//Qの条件をみたすかみたさないか。
//2^50
//全探索、10^9*50
//むりなんですが･･･。
//DP?
//DFS使った全探索か。
ll N,M,Q,ans=0,sum=0;
vector<ll> Z(11),A(55),B(55),C(55),D(55);
void dfs(ll d, ll p){
  for(int i=p; i<=M; i++){
    Z[d]=i;
    if(d<N-1) dfs(d+1,i);
    if(d==N-1){//Aがでそろったら判定
      sum=0;
      for(int j=0; j<Q; j++) if(Z[B[j]-1]-Z[A[j]-1]==C[j]) sum+=D[j];
      ans=max(ans,sum);  
    }
  }
}
int main(){
  ll a,b,c,d; cin>>N>>M>>Q;
  for(int i=0; i<Q; i++) cin>>A[i]>>B[i]>>C[i]>>D[i];
  dfs(0,1);//深さと最初の数
  cout<<ans<<endl;
}