#include <bits/stdc++.h>
using namespace std;
#define FAST ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);

typedef long long ll;
typedef long double ld;
typedef int32_t i32;

#define int long long
#define mp make_pair
#define ff first
#define ss second
#define pb push_back
#define pf push_front

#define FOR(i,a,b) for(ll i=a;i<b;i++)
#define RFOR(i,a,b) for(ll i=a;i>=b;i--)
#define FILL(a,b,c) for(ll i=0;i<c;i++) a[i]=b;

#define sz(v) ((int)(v).size())
#define all(v) (v).begin(), (v).end()
#define allr(v) (v).rbegin(), (v).rend()

#define endl "\n"
#define setpri(x) setprecision(x)
#define vp(x) cout<<#x<<" : "<< (x)<<" | "
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl
#define forf(i,a,b) for(int i=a;i<b;i++)

#define INF 1e17+4
#define MINF 
#define MAX_INT 100000
#define MOD 1000000007
ll mod(ll n) { n %= MOD; if (n < 0) return n + MOD; else return n;}
// vector<int> adj[1000002];
// int vis[1000002],dep[1000002],siz[1000002];

// void dfs(ll cur,ll par)
// {
//     vis[cur]=1;siz[cur]=1;
//     for(auto x:adj[cur])
//     {
//         if(vis[x]!=1)
//         {
//             dep[x]=dep[cur]+1;
//             dfs(x,cur);
//             siz[cur]+=siz[x];
//         }    
//     }
// }

// bool sortfunc(const pair<int,int> &a, const pair<int,int> &b) 
// { 
//     return ;
// }
int val(vector<int> v,vector<vector<int>> d,int n,int m)
{
    int ans=0;
    unordered_map<int,int> mm;
    int l=1;
    for(auto x:v)
    {
        mm[l]=x;
        l++;
    }
    for(auto x:d)
    {
        int a=x[0],b=x[1],c=x[2],d=x[3];
        if(mm.find(a)!=mm.end() && mm.find(b)!=mm.end())
            if(mm[b]-mm[a]==c)
                ans+=d;
    }
    
    return ans;
}


void solve()
{
    int n,m,q;
    cin>>n>>m>>q;
    vector<vector<int>> d(q,vector<int> (4));
    for(int i=0;i<q;i++)
        for(int j=0;j<4;j++)
            cin>>d[i][j];
    int ans=0;
    if(n==2)
    {
        vector<int> v(n);
        for(int i=1;i<=m;i++)
        {
            for(int j=i;j<=m;j++)
            {
                v[0]=i;v[1]=j;
                ans=max(ans,val(v,d,n,m));
            }
        }
    }
    else if(n==3)
    {
        vector<int> v(n);
        for(int i=1;i<=m;i++)
        {
            for(int j=i;j<=m;j++)
            {
                for(int k=j;k<=m;k++)
                {
                    v[0]=i;v[1]=j;v[2]=k;
                    ans=max(ans,val(v,d,n,m));
                }    
            }
        }
            
    }
    else if(n==4)
    {
        vector<int> v(n);
        for(int i=1;i<=m;i++)
        {
            for(int j=i;j<=m;j++)
            {
                for(int k=j;k<=m;k++)
                {
                    for(int l=k;l<=m;l++)
                    {
                        v[0]=i;v[1]=j;v[2]=k;v[3]=l;
                        ans=max(ans,val(v,d,n,m));
                    }    
                }    
            }
        }
            
    }
    else if(n==5)
    {
        vector<int> v(n);
        for(int i=1;i<=m;i++)
        {
            for(int j=i;j<=m;j++)
            {
                for(int k=j;k<=m;k++)
                {
                    for(int l=k;l<=m;l++)
                    {
                        for(int o=l;o<=m;o++)
                        {
                            v[0]=i;v[1]=j;v[2]=k;v[3]=l;v[4]=o;
                            ans=max(ans,val(v,d,n,m));
                        }    
                    }    
                }    
            }
        }
            
    }
    else if(n==6)
    {
        vector<int> v(n);
        for(int i=1;i<=m;i++)
        {
            for(int j=i;j<=m;j++)
            {
                for(int k=j;k<=m;k++)
                {
                    for(int l=k;l<=m;l++)
                    {
                        for(int o=l;o<=m;o++)
                        {
                            for(int p=o;p<=m;p++)
                            {
                                v[0]=i;v[1]=j;v[2]=k;v[3]=l;v[4]=o;v[5]=p;
                                ans=max(ans,val(v,d,n,m));
                            }    
                        }    
                    }    
                }    
            }
        }
            
    }
    else if(n==7)
    {
        vector<int> v(n);
        for(int i=1;i<=m;i++)
        {
            for(int j=i;j<=m;j++)
            {
                for(int k=j;k<=m;k++)
                {
                    for(int l=k;l<=m;l++)
                    {
                        for(int o=l;o<=m;o++)
                        {
                            forf(p,o,m+1)
                            for(int q=p;q<=m;q++)
                            {
                                v[0]=i;v[1]=j;v[2]=k;v[3]=l;v[4]=o;v[5]=p;v[6]=q;
                                ans=max(ans,val(v,d,n,m));
                            }    
                        }    
                    }    
                }    
            }
        }
            
    }
    else if(n==8)
    {
        vector<int> v(n);
        for(int i=1;i<=m;i++)
        {
            for(int j=i;j<=m;j++)
            {
                for(int k=j;k<=m;k++)
                {
                    for(int l=k;l<=m;l++)
                    {
                        for(int o=l;o<=m;o++)
                        {
                            forf(p,o,m+1)
                            for(int q=p;q<=m;q++)
                            {
                                for(int r=q;r<=m;r++)
                                {
                                    v[0]=i;v[1]=j;v[2]=k;v[3]=l;v[4]=o;v[5]=p;v[6]=q;v[7]=r;
                                    ans=max(ans,val(v,d,n,m));
                                }   
                            }
                        }    
                    }    
                }    
            }
        }
            
    }
    else if(n==9)
    {
        vector<int> v(n);
        for(int i=1;i<=m;i++)
        {
            for(int j=i;j<=m;j++)
            {
                for(int k=j;k<=m;k++)
                {
                    for(int l=k;l<=m;l++)
                    {
                        for(int o=l;o<=m;o++)
                        {
                            forf(p,o,m+1)
                            for(int q=p;q<=m;q++)
                            {
                                for(int r=q;r<=m;r++)
                                {
                                    for(int s=r;s<=m;s++)
                                    {
                                        v[0]=i;v[1]=j;v[2]=k;v[3]=l;v[4]=o;v[5]=p;v[6]=q;v[7]=r;v[8]=s;
                                        ans=max(ans,val(v,d,n,m));
                                    } 
                                }
                            }
                        }    
                    }    
                }    
            }
        }
            
    }
    else if(n==10)
    {
        vector<int> v(n);
        for(int i=1;i<=m;i++)
        {
            for(int j=i;j<=m;j++)
            {
                for(int k=j;k<=m;k++)
                {
                    for(int l=k;l<=m;l++)
                    {
                        for(int o=l;o<=m;o++)
                        {
                            forf(p,o,m+1)
                            for(int q=p;q<=m;q++)
                            {
                                for(int r=q;r<=m;r++)
                                {
                                    for(int s=r;s<=m;s++)
                                    {
                                        for(int t=r;t<=m;t++)
                                        {
                                            v[0]=i;v[1]=j;v[2]=k;v[3]=l;v[4]=o;v[5]=p;v[6]=q;v[7]=r;v[8]=s;v[9]=t;
                                            ans=max(ans,val(v,d,n,m));
                                        } 
                                    }
                                }
                            }
                        }    
                    }    
                }    
            }
        }
            
    }
    
    cout<<ans;
}



signed main()
{
    FAST;
    
    // ll t;cin>>t;while(t--)
        solve();
 
    return 0;
}

Measured memory_bytes: 3624