#include <bits/stdc++.h>
using namespace std;
const int N = (int)1e5 + 5;
const int K = 505;
int n, m, k, compCnt;
int type[N], vis[N], comp[N], d[K], dist[K][K];
vector<pair<int, int> > g[N], compg[N];
set<int> grpsInComp[K], compOfGrps[K];
void dfs(int u) {
  if (vis[u]) return;
  vis[u] = 1;
  comp[u] = compCnt;
  grpsInComp[compCnt].insert(type[u]);
  compOfGrps[type[u]].insert(compCnt);
  for (auto v : g[u]) {
    if (v.second != 0) continue;
    dfs(v.first);
  }
}
void dij(int s) {
  d[s] = 0;
  priority_queue<pair<int, int>, vector<pair<int, int> >,
                 greater<pair<int, int> > >
      pq;
  pq.push(make_pair(0, s));
  while (!pq.empty()) {
    int u = pq.top().second, cost = pq.top().first;
    pq.pop();
    if (cost > d[u]) continue;
    for (auto v : compg[u]) {
      if (d[v.first] > d[u] + v.second) {
        d[v.first] = d[u] + v.second;
        pq.push(make_pair(d[v.first], v.first));
      }
    }
  }
}
int main() {
  cin >> n >> m >> k;
  for (int i = 0, id = 0; i < k; i++) {
    int t;
    cin >> t;
    while (t--) type[id++] = i;
  }
  while (m--) {
    int u, v, w;
    cin >> u >> v >> w;
    u--, v--;
    g[u].push_back(make_pair(v, w));
    g[v].push_back(make_pair(u, w));
  }
  for (int i = 0; i < n; i++) {
    if (vis[i] == 0) {
      dfs(i);
      compCnt++;
    }
  }
  for (int i = 0; i < k; i++)
    if (compOfGrps[i].size() > 1) {
      cout << "No" << '\n';
      return 0;
    }
  for (int u = 0; u < n; u++) {
    for (auto e : g[u]) {
      int v = e.first;
      if (comp[u] != comp[v]) {
        compg[comp[u]].push_back(make_pair(comp[v], e.second));
      }
    }
  }
  for (int i = 0; i < compCnt; i++) {
    fill(d, d + compCnt, 1 << 30);
    dij(i);
    for (auto u : grpsInComp[i]) {
      for (int j = 0; j < compCnt; j++) {
        for (auto v : grpsInComp[j]) {
          dist[u][v] = d[j] == 1 << 30 ? -1 : d[j];
        }
      }
    }
  }
  cout << "Yes\n";
  for (int i = 0; i < k; i++, cout << '\n')
    for (int j = 0; j < k; j++) cout << dist[i][j] << " ";
  return 0;
}
