#include<stdio.h>
#include<string.h>
#define MAX 100

int n, pos;
int c = 0;
int pre[1000], in[1000], post[1000];

int find(int x)
{
	for(int i = 0; i < n; i++){
		if(x == in[i]){
			return i;
		}
	}
	return 0;
}

void rec(int l, int r){
	if(l >= r){
		return;
	}
	int root = pre[pos++];
	int m = find(root);
	rec(l, m);
	rec(m+1, r);
	post[c++] = root;
}

void solve(){
    pos = 0;
   	rec(0, n);
	
	for(int i = 0; i < n; i++){
		if(i != n-1){
			printf("%d ", post[i]);
		} else {
			printf("%d\n", post[i]);
		}
	}
}


int main(void){
	scanf("%d", &n);
	
	for(int i = 0; i < n; i++){
		scanf("%d", &pre[i]);
	}
	
	for(int i = 0; i < n; i++){
		scanf("%d", &in[i]);
	}
	
	solve();
	
	return 0;
}
