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