N = gets.to_i A = gets.split.map(&:to_i) ans = [] stack = [] A.reverse_each do |a| if A[0] <= a stack << a else if stack.empty? puts 'No' exit else ans << a end end end stack.pop until stack.empty? v = stack.pop ans << v end puts 'Yes' puts ans.join(' ')