#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 7, M = 1e9 + 7;
int n;
int p[N], a[N];
map<int, int> mp;
int main() {
  scanf("%d", &n);
  if (n & 1) return puts("NO"), 0;
  for (int i = 0; i < n; i++) scanf("%d", &p[i]), mp[p[i]]++;
  for (auto it = mp.begin(); it != mp.end(); it++) {
    if (it->second & 1) return puts("NO"), 0;
  }
  int m;
  scanf("%d", &m);
  if (m > n / 2) return puts("NO"), 0;
  for (int t, i = 0; i < m; i++) {
    scanf("%d", &t);
    a[t - 1] = 1;
  }
  stack<int> s;
  for (int i = n - 1; i >= 0; i--) {
    if (a[i]) {
      s.push(p[i]);
      a[i] = -p[i];
      continue;
    }
    if (s.size()) {
      if (p[i] == s.top()) {
        a[i] = s.top();
        s.pop();
        continue;
      }
    }
    s.push(p[i]);
    a[i] = -p[i];
  }
  if (s.size()) return puts("NO"), 0;
  puts("YES");
  for (int i = 0; i < n; i++) cout << a[i] << " ";
}
