#include <iostream>
using namespace std;
int n,m,a[100],q,ans;
struct qwq
{
	int a,b,c,d;
}b[100];
inline void dfs(int now,int lst)
{
	if(now==n+1)
	{
		int qwq=0;
		for(int i=1;i<=q;i++)
		{
			if(a[b[i].b]-a[b[i].a]==b[i].c)
				qwq+=b[i].d;
		}
		ans=max(ans,qwq);
		return ;
	}
	for(int i=lst;i<=m;i++)
	{
		a[now]=i;
		dfs(now+1,i);
	}
}
int main(int argc, char** argv) {
	cin >> n >> m >> q;
	for(int i=1;i<=q;i++)
		cin >> b[i].a >> b[i].b >> b[i].c >> b[i].d;
	dfs(1,1);
	cout << ans;
	return 0;
}