#include <bits/stdc++.h>
using namespace std;
long long dp[1048576][20];
long long arr[20];
long b[20];
long add[20][20];
long n, m;
long k;
long long count_zeroes(long long num) {
  long long count = 0;
  for (long long j = 0; j < n; j++) {
    if (num & b[j]) count++;
  }
  return count;
}
int main() {
  long long i, j, k;
  long long p, q, l;
  b[0] = 1;
  cin >> n >> m >> k;
  for (i = 0; i < n; i++) cin >> arr[i];
  for (i = 0; i < n; i++)
    for (j = 0; j < n; j++) add[i][j] = 0;
  for (i = 0; i < k; i++) {
    cin >> p >> q >> l;
    add[p - 1][q - 1] = l;
  }
  k = 0;
  for (i = 1; i <= n; i++) b[i] = b[i - 1] * 2;
  for (i = 0; i < b[n]; i++)
    for (j = 0; j < n; j++) dp[i][j] = 0;
  for (i = 0; i < n; i++) dp[b[i]][i] = arr[i];
  for (i = 0; i < b[n]; i++) {
    for (j = 0; j < n; j++) {
      if (i & b[j]) {
        for (k = 0; k < n; k++) {
          if ((i & b[k]) == 0)
            dp[i | b[k]][k] =
                max(dp[i | b[k]][k], dp[i][j] + add[j][k] + arr[k]);
        }
      }
    }
  }
  long long out = 0;
  for (i = 0; i < b[n]; i++) {
    if (count_zeroes(i) == m) {
      for (j = 0; j < n; j++) out = max(out, dp[i][j]);
    }
  }
  cout << out << endl;
  return 0;
}
