#include <bits/stdc++.h>
using namespace std;
const long long N = 3e5 + 5;
long long n, m, k;
long long is[N], c[N], w[N], br[N], fup[N], tin[N], id[N], c1[N], kol[N], dp[N];
long long tt = 0;
long long ans[N];
vector<pair<long long, long long> > g[N], g1[N];
void dfs_br(long long v, long long p) {
  tt++;
  fup[v] = tin[v] = tt;
  for (auto [u, id] : g[v])
    if (u != p)
      if (tin[u] != 0)
        fup[v] = min(fup[v], tin[u]);
      else {
        dfs_br(u, v);
        if (fup[u] > tin[v]) br[id] = 1;
        fup[v] = min(fup[v], fup[u]);
      }
}
void dfs_comp(long long v) {
  id[v] = tt;
  c1[tt] += c[v];
  kol[tt] += is[v];
  for (auto [u, i] : g[v])
    if (!br[i] && !id[u]) dfs_comp(u);
}
long long f(long long u, long long v, long long id) {
  if (kol[u] == 0 || kol[u] == k) {
    return dp[u];
  }
  return max(0ll, dp[u] - w[id]);
}
void dfs_dp(long long v, long long p) {
  for (auto [u, id] : g1[v])
    if (u != p) dfs_dp(u, v), kol[v] += kol[u];
  dp[v] = c1[v];
  for (auto [u, id] : g1[v])
    if (u != p) dp[v] += f(u, v, id);
}
void dfs_ans(long long v, long long p) {
  ans[v] = dp[v];
  for (auto [u, id] : g1[v])
    if (u != p) {
      dp[v] -= f(u, v, id);
      kol[v] -= kol[u];
      kol[u] += kol[v];
      dp[u] += f(v, u, id);
      dfs_ans(u, v);
      dp[u] -= f(v, u, id);
      kol[u] -= kol[v];
      kol[v] += kol[u];
      dp[v] += f(u, v, id);
    }
}
signed main() {
  cin >> n >> m >> k;
  for (long long i = 1; i <= k; i++) {
    long long x;
    cin >> x;
    is[x] = 1;
  }
  for (long long i = 1; i <= n; i++) cin >> c[i];
  for (long long i = 1; i <= m; i++) cin >> w[i];
  for (long long i = 1; i <= m; i++) {
    long long a, b;
    cin >> a >> b;
    g[a].push_back({b, i});
    g[b].push_back({a, i});
  }
  dfs_br(1, 0);
  tt = 0;
  for (long long i = 1; i <= n; i++)
    if (id[i] == 0) {
      tt++;
      dfs_comp(i);
    }
  for (long long v = 1; v <= n; v++)
    for (auto [u, i] : g[v])
      if (br[i]) g1[id[v]].push_back({id[u], i});
  dfs_dp(1, 0);
  dfs_ans(1, 0);
  for (long long i = 1; i <= n; i++) cout << ans[id[i]] << ' ';
  return 0;
}
