#include <bits/stdc++.h>
using namespace std;
long long int n, m, k, a[20], u, v, w, mat[20][20];
long long int dp[20][1 << 20];
long long int mxx(long long int x, long long int y) {
  if (x > y) return x;
  return y;
}
long long int f(int l, int mask, int ct) {
  if (ct == m) return 0;
  if (dp[l][mask] != -1) return dp[l][mask];
  long long int mx = -1, x;
  for (int i = 0; i < n; i++) {
    if (!(mask & (1 << i))) {
      mx = mxx(mx, f(i, mask | (1 << i), ct + 1) + a[i] + mat[l][i]);
    }
  }
  return dp[l][mask] = mx;
}
int main() {
  cin >> n >> m >> k;
  memset(dp, -1, sizeof(dp));
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  for (int i = 0; i < k; i++) {
    cin >> u >> v >> w;
    mat[u - 1][v - 1] = w;
  }
  cout << f(19, 0, 0);
}
