N = $stdin.gets.chomp.to_i S = $stdin.gets.chomp.split(" ").map{ |a| a.to_i } T = $stdin.gets.chomp.split(" ").map{ |a| a.to_i } runner = Hash[T.map.with_index{ |n,i| [n, { t: i+1 }] }] preliminary_head = N+1 ans = [] S.reverse.each{ |n| if runner[n][:t] < preliminary_head runner[n][:ok] = true end preliminary_head = [preliminary_head, runner[n][:t]].min } puts (1...N).select{ |n| runner[n][:ok] }