#include<iostream>
#include<cmath>
#include<cstdio>
#include<string>
#include<cstring>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<algorithm>
//#define LL long long
//#define ULL unsigned long long
using namespace std;
const int INF=0x3f3f3f3f;
const int N=1000010;
stack<int>st;
int a[N];
int main()
{
//freopen("data.in","r",stdin);
int n;
while(cin>>n)
{
while(!st.empty()) st.pop();
for(int i=1;i<=n;++i)
cin>>a[i];
int m;
cin>>m;
while(m--)
{
int l;
cin>>l;
a[l]=-a[l];
}
int l=n;
while(l>0)
{
if(st.empty()||a[l]<0)
{
a[l]=-abs(a[l]);
st.push(l);
}else
{
if(a[l]==(-a[st.top()]))
st.pop();
else
{
a[l]=-abs(a[l]);
st.push(l);
}
}
--l;
}
if(!st.empty())
cout<<"NO"<<endl;
else
{
cout<<"YES"<<endl;
for(int i=1;i<=n;++i)
cout<<a[i]<<" ";
cout<<endl;
}
}
return 0;
}