pythondef solve(N, M, SS, CS):
INF = 9223372036854775807
table = [INF] * (2 ** N)
table[0] = 0
SS = [int(s.replace("Y", "1").replace("N", "0"), 2) for s in SS]
for i in range(M):
s = SS[i]
for src in range(2 ** N):
dst = s | src
table[dst] = min(table[dst], table[src] + CS[i])
ret = table[2 ** N - 1]
if ret == INF:
return -1
return ret