N,M,Q=map(int,input().split())
abcd=[]
for i in range(Q):
    abcdabcd=list(map(int,input().split()))
    abcd.append(abcdabcd)
#入れるAはリスト、[]で表現
def cal(A):
    t=0
    for abcdi in abcd:
        a=abcdi[0]
        b=abcdi[1]
        c=abcdi[2]
        d=abcdi[3]
        if A[b-1]-A[a-1]==c:
            t+=d
    return t

maxi=0
for i in range(1,M+1):
    if M==1:
        maxi=max(maxi,cal([i]))
    for j in range(i,M+1):
        if M==2:
            maxi=max(maxi,cal([i,k]))
        for k in range(j,M+1):
            if M==3:
                maxi=max(maxi,cal([i,j,k]))
            for l in range(k,M+1):
                if M==4:
                    maxi=max(maxi,cal([i,j,k,l]))
                for m in range(l,M+1):
                    if M==5:
                        maxi=max(maxi,cal([i,j,k,l,m]))
                    for n in range(m,M+1):
                        if M==6:
                             maxi=max(maxi,cal([i,j,k,l,m,n]))
                        for o in range(n,M+1):
                            if M==7:
                                maxi=max(maxi,cal([i,j,k,l,m,n,o]))
                            for p in range(o,M+1):
                                if M==8:
                                    maxi=max(maxi,cal([i,j,k,l,m,n,o,p]))
                                for q in range(p,M+1):
                                    if M==9:
                                        maxi=max(maxi,cal([ij,k,l,m,n,o,p,q]))
                                    for r in range(q,M+1):
                                        if M==10:
                                            maxi=max(maxi,cal([i,j,k,l,m,n,o,p,q,r]))
                                        

print(maxi)    

### FIXED CODE ###

N,M,Q=map(int,input().split())
abcd=[]
for i in range(Q):
    abcdabcd=list(map(int,input().split()))
    abcd.append(abcdabcd)
#入れるAはリスト、[]で表現
def cal(A):
    t=0
    for abcdi in abcd:
        a=abcdi[0]
        b=abcdi[1]
        c=abcdi[2]
        d=abcdi[3]
        if A[b-1]-A[a-1]==c:
            t+=d
    return t

maxi=0
for i in range(1,M+1):
    if N==1:
        maxi=max(maxi,cal([i]))
    for j in range(i,M+1):
        if N==2:
            maxi=max(maxi,cal([i,j]))
        for k in range(j,M+1):
            if N==3:
                maxi=max(maxi,cal([i,j,k]))
            for l in range(k,M+1):
                if N==4:
                    maxi=max(maxi,cal([i,j,k,l]))
                for m in range(l,M+1):
                    if N==5:
                        maxi=max(maxi,cal([i,j,k,l,m]))
                    for n in range(m,M+1):
                        if N==6:
                             maxi=max(maxi,cal([i,j,k,l,m,n]))
                        for o in range(n,M+1):
                            if N==7:
                                maxi=max(maxi,cal([i,j,k,l,m,n,o]))
                            for p in range(o,M+1):
                                if N==8:
                                    maxi=max(maxi,cal([i,j,k,l,m,n,o,p]))
                                for q in range(p,M+1):
                                    if N==9:
                                        maxi=max(maxi,cal([ij,k,l,m,n,o,p,q]))
                                    for r in range(q,M+1):
                                        if N==10:
                                            maxi=max(maxi,cal([i,j,k,l,m,n,o,p,q,r]))
                                        

print(maxi)