#include <bits/stdc++.h>
using namespace std;
const int MOD = 2520;
long long vul[20][20];
long long dp[1 << 18][20];
long long dig[40];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0), cout.tie(0);
  int n, m, k;
  cin >> n >> m >> k;
  for (int i = 0; i <= n - 1; i++) cin >> dig[i];
  for (int i = 0; i <= k - 1; i++) {
    int x, y;
    cin >> x >> y;
    x--, y--;
    cin >> vul[x][y];
  }
  int tot = 1 << n;
  long long ans = 0;
  int cnt = 0;
  for (int i = 0; i <= n - 1; i++) dp[1 << i][i] = dig[i];
  for (int s = 0; s < tot; s++) {
    cnt = 0;
    for (int i = 0; i < n; i++)
      if ((s & (1 << i)) != 0) {
        cnt++;
        for (int j = 0; j < n; j++)
          if ((s & (1 << j)) == 0) {
            int k = s | (1 << j);
            dp[k][j] = max(dp[k][j], dp[s][i] + dig[j] + vul[i][j]);
          }
      }
    if (cnt == m) {
      for (int l = 0; l < n; l++)
        if ((s & (1 << l)) != 0) ans = max(ans, dp[s][l]);
    }
  }
  cout << ans << endl;
  return 0;
}
