class Node
  attr_reader :id
  attr_accessor :left, :right

  def initialize(id)
    @id = id
  end
end

def tree(pre_ids, in_ids)
  return nil if pre_ids.none?

  root_id = pre_ids.first
  root = Node.new(root_id)
  return root if pre_ids.one?

  inorder_root_position = in_ids.find_index(root_id)
  left_in_ids = in_ids[0 .. inorder_root_position - 1]
  right_in_ids = in_ids[inorder_root_position + 1 .. -1]

  left_ids_count = inorder_root_position
  inorder_right_begin_position = left_ids_count + 1
  left_pre_ids = pre_ids[1, left_ids_count]
  right_pre_ids = pre_ids[inorder_right_begin_position .. -1]

  root.left = tree(left_pre_ids, left_in_ids)
  root.right = tree(right_pre_ids, right_in_ids)
  root
end

class TreeWalker
  def self.enum_node_postorder(node, &block)
    enum_node_postorder(node.left, &block) if node.left
    enum_node_postorder(node.right, &block) if node.right
    yield node
  end

  def initialize(root)
    @root = root
  end

  def enum_postorder(&block)
    self.class.enum_node_postorder(@root, &block)
  end
end

_ = gets.to_i
pre_ids = gets.chomp.split(' ').map(&:to_i)
in_ids = gets.chomp.split(' ').map(&:to_i)

root = tree(pre_ids, in_ids)
walker = TreeWalker.new(root)
puts walker.to_enum(:enum_postorder).map(&:id).join(' ')

