#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void checkmax(T &a, T b) {
  if (a < b) a = b;
}
template <class T>
inline void checkmin(T &a, T b) {
  if (a > b) a = b;
}
const int inf = 1 << 30;
const double eps = 1e-7;
const long long oo = 100000000LL * 100000000LL;
const long long Mod = 1000000007;
const int NN = 1000010;
int N;
int x[NN];
int main() {
  int i, j, a, b;
  scanf("%d", &N);
  for (i = (0); i < (N); i++) {
    scanf("%d", &x[i]);
  }
  scanf("%d", &a);
  for (i = (0); i < (a); i++) {
    scanf("%d", &b);
    b--;
    x[b] = -x[b];
  }
  stack<int> s;
  for (i = N - 1; i >= 0; i--) {
    if (s.empty() || s.top() + x[i] != 0) {
      s.push(x[i] = -abs(x[i]));
    } else
      s.pop();
  }
  if (!s.empty()) {
    printf("NO\n");
    return 0;
  }
  printf("YES\n");
  printf("%d", x[0]);
  for (i = (1); i < (N); i++) printf(" %d", x[i]);
  printf("\n");
  return 0;
}
