#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 10;
int n, t;
int p[MAXN], q[MAXN], f[MAXN];
stack<int> s;
int main(int argc, const char* argv[]) {
  scanf("%d", &(n));
  for (int i = 1; i <= n; i++) {
    scanf("%d", &(p[i]));
    f[i] = 1;
  }
  scanf("%d", &(t));
  for (int i = 1; i <= t; i++) {
    scanf("%d", &(q[i]));
    f[q[i]] = -1;
  }
  for (int i = n; i > 0; i--) {
    if (s.size() != 0 && (f[i] != -1 && p[s.top()] == p[i])) {
      s.pop();
    } else {
      s.push(i);
      f[i] = -1;
    }
  }
  if (s.size() != 0) {
    printf("NO\n");
  } else {
    printf("YES\n");
    for (int i = 1; i <= n; i++) {
      printf("%d ", p[i] * f[i]);
    }
    printf("\n");
  }
  return 0;
}
