#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:1024000000,1024000000")
using namespace std;
const int mod = 1e9 + 7;
const int N = 2000010;
int nt[N], pt[N], a[N];
bool vis[N];
void del(int u) {
  if (pt[u]) nt[pt[u]] = nt[u];
  if (nt[u]) pt[nt[u]] = pt[u];
  return;
}
int main() {
  int n, t;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", a + i);
  scanf("%d", &t);
  for (int i = 1; i <= t; i++) {
    int q;
    scanf("%d", &q);
    a[q] = -a[q];
  }
  stack<int> st;
  for (int i = n; i >= 1; i--) {
    if (a[i] < 0) {
      st.push(i);
    } else {
      if (st.size()) {
        int u = st.top();
        if (a[u] + a[i] == 0)
          st.pop();
        else if (a[u] == a[i])
          a[u] = -a[u], st.pop();
        else
          st.push(i);
      } else
        st.push(i);
    }
  }
  if (st.size())
    cout << "NO" << endl;
  else {
    cout << "YES\n";
    for (int i = 1; i <= n; i++) cout << a[i] << " ";
    cout << endl;
  }
  return 0;
}
