#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 6, mod = 1e9 + 7, INF = 1 << 30;
int n, m, k, b[30][30], c[1 << 20];
int a[20];
long long dp[1 << 18][20];
int len(int lm) {
  int dem = 0;
  for (int i = 0; i < n; i++) {
    if (lm >> i & 1) dem++;
  }
  return dem;
}
int main() {
  cin >> n >> m >> k;
  for (int(i) = int(0); i < int(n); i++) cin >> a[i];
  for (int(i) = int(0); i < int(k); i++) {
    int x, y, z;
    cin >> x >> y >> z;
    b[x - 1][y - 1] = z;
  }
  c[0] = 1;
  for (int(i) = int(1); i <= int(n); i++) c[i] = c[i - 1] * 2;
  for (int(i) = int(0); i < int(n); i++) {
    dp[c[i]][i] = a[i];
  }
  for (int mask = 1; mask < 1 << n; mask++)
    for (int(i) = int(0); i < int(n); i++)
      if (mask >> i & 1)
        for (int(j) = int(0); j < int(n); j++)
          if (!(mask >> j & 1)) {
            dp[mask | (1 << j)][j] =
                max(dp[mask | 1 << j][j], dp[mask][i] + b[i][j] + a[j]);
          }
  long long ans = 0;
  for (int(i) = int(1); i < int(c[n]); i++)
    if (len(i) == m)
      for (int(j) = int(0); j < int(n); j++)
        if (ans < dp[i][j]) ans = dp[i][j];
  cout << ans;
}
