#include <bits/stdc++.h>
using namespace std;
void du(int& d) {
  char t = getchar();
  bool Mark = false;
  for (; t < '0' || t > '9'; t = getchar())
    if (t == '-') Mark = !Mark;
  for (d = 0; t >= '0' && t <= '9'; t = getchar()) d = d * 10 + t - '0';
  if (Mark) d = -d;
}
const int maxn = 1e6 + 100;
int p[maxn];
int main() {
  int n, t;
  du(n);
  if (n & 1) {
    printf("NO");
    return 0;
  }
  int i, j, k, q;
  for (i = 1; i <= n; i++) du(p[i]);
  du(t);
  for (i = 1; i <= t; i++) {
    du(q);
    p[q] = -p[q];
  }
  stack<int> M;
  int x;
  for (i = n; i >= 1; i--) {
    if (p[i] < 0)
      M.push(p[i]);
    else {
      if (!M.empty() && (p[i] + M.top() == 0))
        M.pop();
      else {
        p[i] = -p[i];
        M.push(p[i]);
      }
    }
  }
  if (M.size())
    printf("NO");
  else {
    printf("YES\n");
    for (i = 1; i <= n; i++) printf("%d ", p[i]);
  }
}
