# まだTLEのはず N, X = gets.split.map(&:to_i) H = Hash.new{|h,k| h[k] = []} T = gets.split.map(&:to_i) T.each_with_index{|n,i| H[n] << i} A = H.to_a.sort.reverse S = T.inject(&:+) def check(a, i, x, s) throw :ok, a if x == 0 return if x < 0 return if s < x return if i >= A.size num, idxs = A[i] idxs.size.downto(0) do |m| check(a.dup.concat(idxs[0...m]), i + 1, x - num * m, s - num * idxs.size) end end ans = catch(:ok) do check([], 0, X, S) [] end puts ans.size > 0 ? (0...N).map{|i| ans.include?(i) ? "o" : "x"}.join : "No"