#include <bits/stdc++.h>
int main() {
  int n;
  scanf("%d", &n);
  std::vector<int> p;
  p.reserve(1500000);
  for (int i = 0; i < n; ++i) {
    int x;
    scanf("%d", &x);
    p.push_back(x);
  }
  int t;
  scanf("%d", &t);
  std::bitset<1500000> q;
  for (int i = 0; i < t; ++i) {
    int x;
    scanf("%d", &x);
    q.set(x - 1);
  }
  std::stack<int> stk;
  std::vector<int> ret(p.size());
  for (int i = p.size() - 1; i >= 0; --i) {
    if (stk.empty() || stk.top() != p[i] || q.test(i)) {
      stk.push(p[i]);
      ret[i] = -p[i];
    } else {
      ret[i] = stk.top();
      stk.pop();
    }
  }
  if (stk.empty()) {
    printf("YES\n");
    for (int i = 0; i < ret.size(); ++i) {
      if (i > 0) printf(" ");
      printf("%d", ret[i]);
    }
    printf("\n");
  } else {
    printf("NO\n");
  }
}
