#include <bits/stdc++.h>
using namespace std;
const long double eps = 1e-9;
const int inf = (1 << 30) - 1;
const long long inf64 = ((long long)1 << 62) - 1;
const long double pi = 3.1415926535897932384626433832795;
template <class T>
T sqr(T x) {
  return x * x;
}
template <class T>
T abs(T x) {
  return x < 0 ? -x : x;
}
const int nmax = 1000100;
int n, m;
int a[nmax];
int us[nmax];
vector<pair<int, int> > now;
int main() {
  cin >> n;
  for (int i = 0; i < (int)(n); i++) scanf("%d", &a[i]);
  cin >> m;
  for (int i = 0; i < (int)(m); i++) {
    int x;
    scanf("%d", &x);
    x--;
    us[x] = 1;
  }
  for (int i = (int)(n)-1; i >= 0; i--) {
    if (now.size() == 0 || us[i] || now.back().first != a[i]) {
      now.push_back(make_pair(a[i], i));
      a[i] *= -1;
      continue;
    }
    now.pop_back();
  }
  if (now.size() != 0) {
    puts("NO");
  } else {
    puts("YES");
    for (int i = 0; i < (int)(n); i++) printf("%d ", a[i]);
    puts("");
  }
  return 0;
}
