N, X = gets.split.map(&:to_i) A = gets.split.map(&:to_i).sort.reverse L = A.length S = A.inject(&:+) # 配列Aのインデックスi以降の数値をいい感じに足して、 # xを作成できるかどうかを確認する。 # aは答えの文字列。 # sは配列Aのインデックスi以降の数値の合計。 def check(a, i, x, s) throw :ok, a + "x" * (L-a.length) if x == 0 return if s < x return if i >= L check(a + "o", i + 1, x - A[i], s - A[i]) if x - A[i] >= 0 check(a + "x", i + 1, x, s - A[i]) end ans = catch(:ok) do check("", 0, X, S) end puts ans || "No"