class Node
  def initialize(id)
    @id = id
    @left = nil 
    @right = nil
  end

  attr_accessor :id, :left, :right
end

def reconstruct_visit(node, index, lefts, rights)
  direct_left = compare_by_preorder(lefts)
  direct_right = compare_by_preorder(rights)
  if direct_left >= 0 then
    node.left = Node.new(direct_left)
    left_index = lefts.index(direct_left)
    reconstruct_visit(node.left, 
          direct_left,
          lefts[0...left_index], 
          lefts[left_index+1...index])
  end
  if direct_right >= 0 then
    node.right = Node.new(direct_right)
    right_index = rights.index(direct_right)
    reconstruct_visit(node.right, 
          direct_right,
          rights[0...right_index], 
          rights[right_index+1...index])
  end
end

def compare_by_preorder(array)
  return -1 if array.size == 0
  ordered_array = array.map do |item|
    [item, $preorder.index(item)]
  end
  ordered_array.sort! {|x, y| x[1] <=> y[1]}
  return ordered_array[0][0]
end

def postorder(node, array)
  if (node.left != nil) then
    postorder(node.left, array)
  end
  if (node.right != nil) then
    postorder(node.right, array)
  end
  array << node.id
end


n = gets.chomp.to_i
$preorder = gets.chomp.split.map(&:to_i)
$inorder = gets.chomp.split.map(&:to_i)

root_node = Node.new($preorder[0])
root_index = $inorder.index($preorder[0])
reconstruct_visit(root_node, 
      root_index, 
      $inorder[0...root_index], 
      $inorder[root_index+1..-1])

postorder_array = []
postorder(root_node, postorder_array)
puts postorder_array.join(' ')