#include <bits/stdc++.h>
int a[1000001], c[1000001];
bool b[1000001];
using namespace std;
int main() {
  int n;
  scanf("%d", &n);
  for (int i = n - 1; i >= 0; --i) {
    scanf("%d", &a[i]);
  }
  int t;
  scanf("%d", &t);
  fill(b, b + n, false);
  for (int i = 0; i < t; ++i) {
    int v;
    scanf("%d", &v);
    b[n - v] = true;
  }
  stack<int> stk;
  bool ok = true;
  for (int i = 0; i < n; ++i) {
    if (b[i] || stk.empty() || stk.top() != a[i]) {
      stk.push(a[i]);
      c[i] = a[i];
    } else {
      if (stk.empty() || stk.top() != a[i]) {
        ok = false;
        break;
      } else {
        stk.pop();
        c[i] = -a[i];
      }
    }
  }
  if (!stk.empty() || !ok) {
    puts("NO");
  } else {
    puts("YES");
    for (int i = n - 1; i >= 0; --i) {
      printf("%d%c", -c[i], (i == 0 ? '\n' : ' '));
    }
  }
  return 0;
}
