#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,k;
int v[20],ex[20][20],f[20][1<<20];
int ans;
int lowbit(int x)
{
int ans=0;
while(x)
{
ans++;
x-=x&-x;
}
return ans;
}
signed main()
{
scanf("%lld%lld%lld",&n,&m,&k);
for(int i=0;i<n;i++)
{
scanf("%lld",&v[i]);
f[i][1<<i]=v[i];
}
for(int i=1;i<=k;i++)
{
int x,y,z;
scanf("%lld%lld%lld",&x,&y,&z);
ex[x][y]=z;
}
for(int i=0;i<(1<<n);i++)
{
if(lowbit(i)>=m)continue;
for(int j=0;j<n;j++)
{
if(i&(1<<j))
{
for(int k=0;k<n;k++)
{
if(!(i&(1<<k)))
{
f[k][i|(1<<k)]=max(f[k][i|(1<<k)],f[j][i]+v[k]+ex[j][k]);
}
}
}
}
}
for(int i=0;i<(1<<n);i++)
{
for(int j=0;j<n;j++)
{
if((i&(1<<j))&&lowbit(i)==m)
{
ans=max(ans,f[j][i]);
}
}
}
cout<<ans<<"\n";
return 0;
}