#include <bits/stdc++.h>
using namespace std;
const long long sz = 1e6 + 10;
long long ara[sz];
bool close[sz];
int main() {
  long long n;
  scanf("%lld", &n);
  for (long long i = 1; i <= n; ++i) scanf("%lld", &ara[i]);
  long long m;
  scanf("%lld", &m);
  for (long long i = 1; i <= m; ++i) {
    long long pos;
    scanf("%lld", &pos);
    close[pos] = 1;
  }
  stack<long long> st;
  for (long long i = n; i >= 1; --i) {
    if (st.empty()) {
      st.push(i);
      continue;
    }
    long long pos = st.top();
    if (ara[i] == ara[pos]) {
      if (close[i])
        st.push(i);
      else if (!close[pos]) {
        close[pos] = 1;
        st.pop();
      } else
        st.pop();
    } else
      st.push(i);
  }
  if (!st.empty()) {
    printf("NO\n");
    return 0;
  }
  printf("YES\n");
  for (long long i = 1; i <= n; ++i) {
    if (i != 1) printf(" ");
    if (close[i]) printf("-");
    printf("%lld", ara[i]);
  }
  printf("\n");
  return 0;
}
