#include <stdio.h>
#define max(a, b) ((a)<(b) ? (b) : (a))

int ans = 0;
int a[52], b[52], c[52], d[52];

void dfs(int array[], int m, int n, int q){
  if(array[0] == n){
    int sum = 0;
    for(int i=0; i<q; i++)
      if(array[b[i]] - array[a[i]] == c[i])
	sum += d[i];
    ans = max(ans, sum);
    return;
  }

  int start = (array[0] == 0 ? 1 : array[array[0]]);
  for(int i=start; i<=m; i++){
    array[++array[0]] = i;
    dfs(array, m, n, q);
    array[0]--;
  }
}

int main(){
  int n, m, q;  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);

  int array[15] = {0};
  dfs(array, m, n, q);

  printf("%d\n", ans);
  return 0;
}
