#include <bits/stdc++.h>
const int MAX_N = (int)1e6 + 123;
const double eps = 1e-6;
const int mod = (int)1e6 + 3;
using namespace std;
int n;
int a[MAX_N];
vector<int> st;
bool bad[MAX_N];
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
  }
  int t;
  scanf("%d", &t);
  while (t--) {
    int x;
    scanf("%d", &x);
    bad[x] = 1;
  }
  for (int i = n; i > 0; i--) {
    st.push_back(i);
    if (bad[i]) continue;
    if ((int)((st).size()) > 1 && a[i] == a[st[(int)((st).size()) - 2]]) {
      a[st[(int)((st).size()) - 2]] *= -1;
      st.pop_back(), st.pop_back();
    }
  }
  if (!st.empty()) {
    puts("NO");
    return 0;
  }
  puts("YES");
  for (int i = 1; i <= n; i++) printf("%d ", a[i]);
  return 0;
}
