class Node
  attr_accessor :id, :left, :right

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

def reconstruct_visit(node, index, lefts, rights)
  direct_left = compare_preorder(lefts)
  direct_right = compare_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..-1])
  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..-1])
  end
end

def compare_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.push(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 = Array.new
postorder(root_node, postorder_array)
puts postorder_array.join(' ')