n, X = map(int, input().split()) A = list(map(int, input().split())) sum_total = sum(A) if sum_total < X: print("No") else: # Precompute suffix sums for pruning suffix_sum = [0] * (n + 1) for i in range(n-1, -1, -1): suffix_sum[i] = A[i] + suffix_sum[i+1] result = None path = ['x'] * n # Initialize all as not selected def dfs(i, current_sum): global result if current_sum == X: result = path.copy() return True if i >= n: return False if current_sum > X: return False if current_sum + suffix_sum[i] < X: return False # Try not selecting A[i] if dfs(i + 1, current_sum): return True # Try selecting A[i] path[i] = 'o' if dfs(i + 1, current_sum + A[i]): return True path[i] = 'x' # Backtrack return False if dfs(0, 0): print(''.join(result)) else: print("No")