#include <bits/stdc++.h>
using namespace std;
const int MN = 1000111;
int main() {
  cin.sync_with_stdio(false);
  cin.tie(0);
  int n;
  vector<int> a(MN);
  while (cin >> n) {
    for (int i = (1), _b = (n); i <= _b; i++) cin >> a[i];
    vector<int> bad(MN);
    int q;
    cin >> q;
    while (q--) {
      int u;
      cin >> u;
      bad[u] = true;
    }
    stack<int> st;
    for (int i = (n), _b = (1); i >= _b; i--) {
      if (bad[i])
        a[i] = -a[i];
      else if (!st.empty() && st.top() == a[i]) {
        a[i] = +a[i];
      } else {
        a[i] = -a[i];
      }
      if (a[i] > 0)
        st.pop();
      else
        st.push(-a[i]);
    }
    if (st.empty()) {
      puts("YES");
      for (int i = (1), _b = (n); i <= _b; i++) printf("%d ", a[i]);
      puts("");
    } else
      puts("NO");
    break;
  }
  return 0;
}
