#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
const int M = 1e9 + 7;
const double pi = 2 * acos(0.0);
const double esp = 1e-9;
int Set(int N, int pos) { return N = N | (1 << pos); }
int reset(int N, int pos) { return N = N & ~(1 << pos); }
bool check(int N, int pos) { return (bool)(N & (1 << pos)); }
int ar[N];
bool ck[N];
stack<int> st;
int main() {
  int test = 1;
  for (int cs = 1; cs <= test; ++cs) {
    int n, t, x;
    scanf("%d", &n);
    for (int i = 1; i <= n; ++i) {
      scanf("%d", &ar[i]);
    }
    scanf("%d", &t);
    for (int i = 1; i <= t; ++i) {
      scanf("%d", &x);
      ck[x] = true;
    }
    for (int i = n; i >= 1; --i) {
      if (st.empty() || ck[i] || st.top() != ar[i]) {
        st.push(ar[i]);
        ar[i] *= -1;
      } else {
        st.pop();
      }
    }
    if (st.empty()) {
      printf("YES\n");
      for (int i = 1; i <= n; ++i) {
        printf("%d", ar[i]);
        if (i != n) printf(" ");
      }
    } else {
      printf("NO\n");
    }
  }
  return 0;
}
