#include <bits/stdc++.h>
using namespace std;
 int N,M,Q;
 
 vector<int> a(50),b(50),c(50),d(50);

   

     
int dfs(int n,vector<int> L);

      
   
int main()
{ int i,j;
  cin >> N >> M >> Q;
  for(i=0;i<Q;i++)
  {
    cin >> a.at(i) >> b.at(i) >> c.at(i) >> d.at(i) ;
    a.at(i)--;
    b.at(i)--;
    
  }
 vector<int> R={0,0,0,0,0,0,0,0,0,0};
 cout << dfs(0,R) << endl;
}
 

   
int dfs(int n,vector<int> L)
{ 
  int ma,poin;
  int i,j,k;
 
  
   if(n==N)  
   {
     poin=0;
     for(i=0;i<Q;i++)
     {
       if(L.at(b.at(i))-L.at(a.at(i))==c.at(i))
       {
         poin+=d.at(i);
       }
     }
   return poin;
   }

  
   if(n!=N)
   {
     ma=0;
     if(n==0)
     {
     k=1;
     }
     else
     {
     k=L.at(n-1);
     }
       for(i=k;i<M+1;i++)
     {
      L.at(n)=i;
       ma=max(ma,dfs(n+1,L));
     }
     return ma;
   }
}
