#include <bits/stdc++.h>
using namespace std;
long long dp[1 << 20][20];
long long c[20];
int p[10000];
void solve() {
  int n, m, k;
  cin >> n >> m >> k;
  long long mx = -1;
  for (int i = 0; i < n; i++) {
    cin >> c[i];
  }
  for (int i = 0; i < k; i++) {
    int x, y, z;
    cin >> x >> y >> z;
    p[100 * (x - 1) + (y - 1)] = z;
  }
  for (long long mask = 1; mask < (1 << n); mask++) {
    for (int i = 0; i < n; i++) {
      dp[mask][i] = -1;
    }
  }
  for (int i = 0; i < n; i++) {
    dp[1 << i][i] = c[i];
  }
  for (long long mask = 1; mask < (1 << n); mask++) {
    int g = __builtin_popcountll(mask);
    if (g > m)
      continue;
    else if (g == m) {
      for (int i = 0; i < n; i++) {
        if (mask & (1 << i)) {
          mx = max(mx, dp[mask][i]);
        }
      }
    }
    for (int i = 0; i < n; i++) {
      if (mask & (1 << i)) {
        for (int j = 0; j < n; j++) {
          if (!(mask & (1 << j))) {
            dp[mask + (1 << j)][j] = max(dp[mask][i] + c[j] + p[100 * i + j],
                                         dp[mask + (1 << j)][j]);
          }
        }
      }
    }
  }
  cout << mx << endl;
}
int main() {
  solve();
  return 0;
}
