#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using namespace std;
using ll = long long;

int main() {
  int N, M, Q;
  cin >> N >> M >> Q;
  vector<int> a(Q);
  vector<int> b(Q);
  vector<int> c(Q);
  vector<int> d(Q);
  rep(i, Q) {
    cin >> a[i];
    cin >> b[i];
    cin >> c[i];
    cin >> d[i];
    a[i]--;
    b[i]--;
  }
  vector<int> A(N, 0);
  int ans = 0;
  if (N == 2) {
    for (int i_1 = 1; i_1 <= M; i_1++) {
      for (int i_2 = i_1; i_2 <= M; i_2++) {
        A[0] = i_1; A[1] = i_2;
        int sum = 0;
        for (int j = 0; j < Q; j++) {
          if (A[b[j]] - A[a[j]] == c[j]) {
            sum += d[j];
          }
        }
        ans = max(ans, sum);
      }
    }
  }
  if (N == 3) {
    for (int i_1 = 1; i_1 <= M; i_1++) {
      for (int i_2 = i_1; i_2 <= M; i_2++) {
        for (int i_3 = i_2; i_3 <= M; i_3++) {
          A[0] = i_1; A[1] = i_2; A[2] = i_3;
          int sum = 0;
          for (int j = 0; j < Q; j++) {
            if (A[b[j]] - A[a[j]] == c[j]) {
              sum += d[j];
            }
          }
          ans = max(ans, sum);
        }
      }
    }
  }
  if (N == 4) {
    for (int i_1 = 1; i_1 <= M; i_1++) {
      for (int i_2 = i_1; i_2 <= M; i_2++) {
        for (int i_3 = i_2; i_3 <= M; i_3++) {
          for (int i_4 = i_3; i_4 <= M; i_4++) {
            A[0] = i_1; A[1] = i_2; A[2] = i_3; A[3] = i_4;
            int sum = 0;
            for (int j = 0; j < Q; j++) {
              if (A[b[j]] - A[a[j]] == c[j]) {
                sum += d[j];
              }
            }
            ans = max(ans, sum);
          }
        }
      }
    }
  }
  if (N == 5) {
    for (int i_1 = 1; i_1 <= M; i_1++) {
      for (int i_2 = i_1; i_2 <= M; i_2++) {
        for (int i_3 = i_2; i_3 <= M; i_3++) {
          for (int i_4 = i_3; i_4 <= M; i_4++) {
            for (int i_5 = i_4; i_5 <= M; i_5++) {
              A[0] = i_1; A[1] = i_2; A[2] = i_3; A[3] = i_4; A[4] = i_5;
              int sum = 0;
              for (int j = 0; j < Q; j++) {
                if (A[b[j]] - A[a[j]] == c[j]) {
                  sum += d[j];
                }
              }
              ans = max(ans, sum);
            }
          }
        }
      }
    }
  }
  if (N == 6) {
    for (int i_1 = 1; i_1 <= M; i_1++) {
      for (int i_2 = i_1; i_2 <= M; i_2++) {
        for (int i_3 = i_2; i_3 <= M; i_3++) {
          for (int i_4 = i_3; i_4 <= M; i_4++) {
            for (int i_5 = i_4; i_5 <= M; i_5++) {
              for (int i_6 = i_5; i_6 <= M; i_6++) {
                A[0] = i_1; A[1] = i_2; A[2] = i_3; A[3] = i_4; A[4] = i_5; A[5] = i_6;
                int sum = 0;
                for (int j = 0; j < Q; j++) {
                  if (A[b[j]] - A[a[j]] == c[j]) {
                    sum += d[j];
                  }
                }
                ans = max(ans, sum);
              }
            }
          }
        }
      }
    }
  }
  if (N == 7) {
    for (int i_1 = 1; i_1 <= M; i_1++) {
      for (int i_2 = i_1; i_2 <= M; i_2++) {
        for (int i_3 = i_2; i_3 <= M; i_3++) {
          for (int i_4 = i_3; i_4 <= M; i_4++) {
            for (int i_5 = i_4; i_5 <= M; i_5++) {
              for (int i_6 = i_5; i_6 <= M; i_6++) {
                for (int i_7 = i_6; i_7 <= M; i_7++) {
                  A[0] = i_1; A[1] = i_2; A[2] = i_3; A[3] = i_4; A[4] = i_5; A[5] = i_6; A[6] = i_7;
                  int sum = 0;
                  for (int j = 0; j < Q; j++) {
                    if (A[b[j]] - A[a[j]] == c[j]) {
                      sum += d[j];
                    }
                  }
                  ans = max(ans, sum);
                }
              }
            }
          }
        }
      }
    }
  }
  if (N == 8) {
    for (int i_1 = 1; i_1 <= M; i_1++) {
      for (int i_2 = i_1; i_2 <= M; i_2++) {
        for (int i_3 = i_2; i_3 <= M; i_3++) {
          for (int i_4 = i_3; i_4 <= M; i_4++) {
            for (int i_5 = i_4; i_5 <= M; i_5++) {
              for (int i_6 = i_5; i_6 <= M; i_6++) {
                for (int i_7 = i_6; i_7 <= M; i_7++) {
                  for (int i_8 = i_7; i_8 <= M; i_8++) {
                    A[0] = i_1; A[1] = i_2; A[2] = i_3; A[3] = i_4; A[4] = i_5; A[5] = i_6; A[6] = i_7; A[7] = i_8;
                    int sum = 0;
                    for (int j = 0; j < Q; j++) {
                      if (A[b[j]] - A[a[j]] == c[j]) {
                        sum += d[j];
                      }
                    }
                    ans = max(ans, sum);
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if (N == 9) {
    for (int i_1 = 1; i_1 <= M; i_1++) {
      for (int i_2 = i_1; i_2 <= M; i_2++) {
        for (int i_3 = i_2; i_3 <= M; i_3++) {
          for (int i_4 = i_3; i_4 <= M; i_4++) {
            for (int i_5 = i_4; i_5 <= M; i_5++) {
              for (int i_6 = i_5; i_6 <= M; i_6++) {
                for (int i_7 = i_6; i_7 <= M; i_7++) {
                  for (int i_8 = i_7; i_8 <= M; i_8++) {
                    for (int i_9 = i_8; i_9 <= M; i_9++) {
                      A[0] = i_1; A[1] = i_2; A[2] = i_3; A[3] = i_4; A[4] = i_5; A[5] = i_6; A[6] = i_7; A[7] = i_8; A[8] = i_9;
                      int sum = 0;
                      for (int j = 0; j < Q; j++) {
                        if (A[b[j]] - A[a[j]] == c[j]) {
                          sum += d[j];
                        }
                      }
                      ans = max(ans, sum);
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if (N == 10) {
    for (int i_1 = 1; i_1 <= M; i_1++) {
      for (int i_2 = i_1; i_2 <= M; i_2++) {
        for (int i_3 = i_2; i_3 <= M; i_3++) {
          for (int i_4 = i_3; i_4 <= M; i_4++) {
            for (int i_5 = i_4; i_5 <= M; i_5++) {
              for (int i_6 = i_5; i_6 <= M; i_6++) {
                for (int i_7 = i_6; i_7 <= M; i_7++) {
                  for (int i_8 = i_7; i_8 <= M; i_8++) {
                    for (int i_9 = i_8; i_9 <= M; i_9++) {
                      for (int i_10 = i_9; i_10 <= M; i_10++) {
                        A[0] = i_1; A[1] = i_2; A[2] = i_3; A[3] = i_4; A[4] = i_5; A[5] = i_6; A[6] = i_7; A[7] = i_8; A[8] = i_9; A[9] = i_10;
                        int sum = 0;
                        for (int j = 0; j < Q; j++) {
                          if (A[b[j]] - A[a[j]] == c[j]) {
                            sum += d[j];
                          }
                        }
                        ans = max(ans, sum);
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  cout << ans << endl;
}

Measured memory_bytes: 3636