#include <bits/stdc++.h>
using namespace std;
int n, t, x;
int a[1000005];
bool neg[1000005];
stack<int> s1;
int main() {
  memset(neg, 0, sizeof(neg));
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
  scanf("%d", &t);
  for (int i = 1; i <= t; ++i) {
    scanf("%d", &x);
    neg[x] = 1;
  }
  if (n % 2 != 0) {
    printf("NO");
    return 0;
  }
  for (int i = n; i >= 1; --i) {
    if (neg[i])
      s1.push(-1 * a[i]);
    else {
      if (s1.empty()) {
        s1.push(-1 * a[i]);
        neg[i] = 1;
      } else if (a[i] + s1.top() == 0)
        s1.pop();
      else {
        s1.push(-1 * a[i]);
        neg[i] = 1;
      }
    }
  }
  if (!s1.empty())
    printf("NO");
  else {
    printf("YES\n");
    for (int i = 1; i <= n; ++i)
      if (neg[i])
        printf("%d ", -1 * a[i]);
      else
        printf("%d ", a[i]);
  }
  return 0;
}
