import java.io.PrintWriter
import kotlin.math.max

data class Query(val a: Int, val b: Int, val c: Int, val d: Int)

fun main() {
    val pw = PrintWriter(System.out)

    val (n, m, q) = readInputLine().split(" ").map { it.toInt() }

    val query = Array(q) { Query(0, 0, 0, 0) }

    repeat(q) {
        val input = readInputLine().split(" ").map { it.toInt() }
        query[it] = Query(input[0] - 1, input[1] - 1, input[2], input[3])
    }

    val arr = IntArray(n) { 1 }

    fun dfs(index: Int, min: Int): Int {
        if (index == n) {
            var ret = 0
            for (qe in query) {
                if (arr[qe.b] - arr[qe.a] == qe.c) {
                    ret += qe.d
                }
            }
            return ret
        }

        var ret = 0

        for (i in min..m) {
            arr[index] = i
            ret = max(ret, dfs(index + 1, i))
        }

        return ret
    }

    pw.println(dfs(1, 1))

    pw.flush()
}

fun readInputLine(): String {
    return readLine()!!
}

// これが全探索で計算量的に問題ないと見抜けないの、数学的素養がなさすぎてつらい
// 競プロ向いていない つらい
