#include<bits/stdc++.h>
using namespace std;
const int N=35;
int pre[N];
int post[N];
bool flag;
vector<int> in;
void get(int prel,int prer,int postl,int postr){
if(prel==prer){
in.push_back(pre[prel]);
return ;
}
if(pre[prel]==post[postr]){
int t=prel+1;
while(t<=prer&&pre[t]!=post[postr-1]) t++;
if(t-prel-1>=1) get(prel+1,t-1,postl,postl+t-prel-2);
else flag=false;
in.push_back(pre[prel]);
get(t,prer,postl+t-prel-1,postr-1);
}
}
int main(){
int n;scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&pre[i]);
for(int i=1;i<=n;i++) scanf("%d",&post[i]);
flag=true;
get(1,n,1,n);
if(flag) puts("Yes");
else puts("No");
for(int i=0;i<in.size();i++){
if(i==in.size()-1) printf("%d\n",in[i]);
else printf("%d ",in[i]);
}
return 0;
}