#include <bits/stdc++.h>
using namespace std;
int store[1000005];
stack<int> trace;
int main(void) {
  int n;
  scanf("%d", &n);
  for (int i = (1); i < (n + 1); ++i) scanf("%d", store + i);
  int t;
  scanf("%d", &t);
  for (int i = 0; i < (t); ++i) {
    int v;
    scanf("%d", &v);
    store[v] = -store[v];
  }
  for (int i = n; i >= 1; i--) {
    if (trace.empty()) {
      if (store[i] > 0) {
        store[i] = -store[i];
        trace.push(store[i]);
      } else
        trace.push(store[i]);
    } else {
      if (store[i] > 0) {
        if (store[i] == -trace.top())
          trace.pop();
        else {
          store[i] = -store[i];
          trace.push(store[i]);
        }
      } else {
        trace.push(store[i]);
      }
    }
  }
  if (trace.empty()) {
    puts("YES");
    for (int i = (1); i < (n + 1); ++i) printf("%d ", store[i]);
  } else
    puts("NO");
  return 0;
}
