#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long x;
  scanf("%lld", &x);
  return x;
}
struct node {
  long long nex, to, dis;
} e[5000000];
vector<long long> who[500010];
string dou;
char leizi;
long long n, m, val[500010], vis[500010], ans, can[500010], p = -1, h[500010];
long long pos[500010], S, T, sum;
inline void add(long long u, long long v, long long dis) {
  e[++p].to = v, e[p].nex = h[u], h[u] = p, e[p].dis = dis;
}
long long dep[500010], cur[500010];
inline bool bfs() {
  queue<long long> q;
  while (!q.empty()) q.pop();
  for (long long i = 1; i <= n + m + 5; ++i)
    dep[i] = 21474836400000, cur[i] = h[i];
  dep[S] = 1;
  q.push(S);
  while (!q.empty()) {
    long long x = q.front();
    q.pop();
    if (x == T) break;
    for (long long i = h[x]; i != -1; i = e[i].nex)
      if (dep[e[i].to] == 21474836400000 && e[i].dis)
        dep[e[i].to] = dep[x] + 1, q.push(e[i].to);
  }
  return dep[T] < 21474836400000;
}
inline long long dfs(long long x, long long limit) {
  if (x == T || !limit) return limit;
  long long f, res = 0;
  for (long long i = cur[x]; i != -1; i = e[i].nex) {
    long long xx = e[i].to;
    cur[x] = i;
    if (dep[xx] == dep[x] + 1 && (f = dfs(xx, min(limit, e[i].dis)))) {
      e[i].dis -= f;
      e[i ^ 1].dis += f;
      limit -= f;
      res += f;
      if (!limit) break;
    }
  }
  return res;
}
inline void Dinic() {
  while (bfs()) ans = ans + dfs(S, 21474836400000);
}
long long a[500010];
signed main() {
  n = read();
  m = read();
  S = n + m + 1, T = n + m + 2;
  for (long long i = 1; i <= n + m + 2; ++i) h[i] = -1;
  for (long long i = 1; i <= n; ++i) a[i] = read();
  for (long long i = 1; i <= n; ++i) add(i + m, T, a[i]), add(T, i + m, 0);
  for (long long x, y, z, i = 1; i <= m; ++i) {
    x = read(), y = read(), z = read();
    add(S, i, z);
    add(i, S, 0);
    add(i, x + m, 21474836400000), add(x + m, i, 0);
    add(i, y + m, 21474836400000), add(y + m, i, 0);
    sum += z;
  }
  Dinic();
  ans = sum - ans;
  printf("%lld\n", ans);
}
