#include <bits/stdc++.h>
using namespace std;
int num[1000005], n, t;
int main() {
  stack<pair<int, int> > s;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &num[i]);
  }
  scanf("%d", &t);
  for (int i = 1; i <= t; i++) {
    int g;
    scanf("%d", &g);
    num[g] *= -1;
  }
  for (int i = n; i >= 1; i--) {
    if (!s.size()) {
      s.push(make_pair(num[i], i));
    } else if (s.top().first < 0 && s.top().first == -1 * num[i]) {
      s.pop();
    } else if (s.top().first == num[i] && num[i] > 0) {
      num[s.top().second] *= -1;
      s.pop();
    } else {
      s.push(make_pair(num[i], i));
    }
  }
  if (s.size()) {
    puts("NO");
    return 0;
  }
  puts("YES");
  for (int i = 1; i <= n; i++) {
    printf("%d%c", num[i], i == n ? '\n' : ' ');
  }
  return 0;
}
