#include <bits/stdc++.h>
using namespace std;
int n, a[1000005], next[1000005], prev[1000005];
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", a + i);
  int m, x;
  scanf("%d", &m);
  for (int i = 0; i < m; i++) {
    scanf("%d", &x);
    a[x] = -a[x];
  }
  stack<int> s, t;
  for (int i = 1; i <= n; i++)
    if (a[i] < 0) {
      while (!s.empty()) {
        if (a[s.top()] + a[i] == 0 && t.empty()) break;
        if (!t.empty() && a[s.top()] == a[t.top()]) {
          a[t.top()] = -a[t.top()];
          s.pop();
          t.pop();
        } else {
          t.push(s.top());
          s.pop();
        }
      }
      if (!t.empty() || s.empty()) {
        printf("NO");
        return 0;
      }
      s.pop();
    } else
      s.push(i);
  while (!s.empty())
    if (!t.empty() && a[s.top()] == a[t.top()]) {
      a[t.top()] = -a[t.top()];
      s.pop();
      t.pop();
    } else {
      t.push(s.top());
      s.pop();
    }
  if (!t.empty()) {
    printf("NO");
    return 0;
  }
  printf("YES\n");
  for (int i = 1; i <= n; i++) printf("%d ", a[i]);
}
