#include <bits/stdc++.h>
using namespace std;
int nums[1000006], ter[1000006];
stack<int> S;
int AB(int x) {
  if (x > 0)
    return x;
  else
    return -x;
}
int main() {
  int n, t, i;
  while (scanf("%d", &n) != EOF) {
    for (i = 1; i <= n; i++) scanf("%d", &nums[i]);
    scanf("%d", &t);
    while (t--) {
      scanf("%d", &i);
      nums[i] = -nums[i];
    }
    while (!S.empty()) S.pop();
    if (n % 2) {
      printf("NO\n");
      continue;
    }
    bool f = true;
    for (i = n; i >= 1; i--) {
      if (nums[i] < 0)
        S.push(i);
      else {
        if (!S.empty() && nums[S.top()] == -nums[i])
          S.pop();
        else {
          nums[i] = -nums[i];
          S.push(i);
        }
      }
    }
    if (f && S.empty()) {
      printf("YES\n");
      for (i = 1; i <= n; i++) {
        if (i > 1) printf(" ");
        printf("%d", nums[i]);
      }
      printf("\n");
    } else
      printf("NO\n");
  }
  return 0;
}
