#include <bits/stdc++.h>
using namespace std;
const int INF = (-1u) / 2;
const long long int INF2 = (-1ull) / 2;
int a, b, i, j, k, n, m, timer = 0, l, r, x, y, t, us[1200000];
int c[1011000], cnt = 0, fl = 0, a2, a3 = -1000000, ans = 0;
vector<int> v;
void no() {
  printf("NO\n");
  exit(0);
}
void yes() { printf("YES\n"); }
int main() {
  scanf("%d", &n);
  for (i = 1; i <= n; i++) scanf("%d", &c[i]);
  scanf("%d", &t);
  for (i = 0; i < t; i++) {
    scanf("%d", &a);
    us[a] = 1;
  }
  for (i = n; i >= 1; i--) {
    if (us[i]) {
      v.push_back(c[i]);
      c[i] *= -1;
      cnt++;
    } else {
      if (v.size() > 0 && v.back() == c[i]) {
        cnt--;
        v.pop_back();
      } else {
        v.push_back(c[i]);
        cnt++;
        c[i] *= -1;
      }
    }
  }
  if (cnt != 0) no();
  yes();
  for (i = 1; i <= n; i++) printf("%d ", c[i]);
  return 0;
}
