from itertools import product def make_brackets(eq): opers = ["<=", "!=", "or", "and"][::-1] for op in opers: if op in eq: parts = eq.split(op) else: continue for i in range(len(parts) - 1): if parts[i][-2] in alph: parts[i] = parts[i][:-2] + "(" + parts[i][-2:] else: c = 1 for j in range(len(parts[i]) - 3, -1, -1): if parts[i][j] == ")": c += 1 elif parts[i][j] == "(": c -= 1 if not c: if j >= 4: if parts[i][j - 4:j] == "not ": parts[i] = parts[i][:j - 4] + "(" + parts[i][j - 4:] else: parts[i] = parts[i][:j] + "(" + parts[i][j:] break if parts[i + 1][1] in alph: parts[i + 1] = parts[i + 1][:2] + ")" + parts[i + 1][2:] else: if parts[i + 1][1] == "(": c = 1 for j in range(2, len(parts[i + 1])): if parts[i + 1][j] == "(": c += 1 elif parts[i + 1][j] == ")": c -= 1 if not c: parts[i + 1] = parts[i + 1][:j] + ")" + parts[i + 1][j:] break elif parts[i + 1][1] == "n": if parts[i + 1][5] == "(": for j in range(6, len(parts[i + 1])): if parts[i + 1][j] == "(": c += 1 elif parts[i + 1][j] == ")": c -= 1 if not c: parts[i + 1] = parts[i + 1][:j] + ")" + parts[i + 1][j:] break else: parts[i + 1] = parts[i + 1][:6] + ")" + parts[i + 1][6:] eq = op.join(parts) return eq alph = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" state = input().replace("->", "<=").replace("^", "!=").replace("~", "==") arr = [] for let in alph: if let in state: arr.append(let) print(*arr, "F") for elem in product((0, 1), repeat=len(arr)): m = [] buff = arr c = 0 for let in alph: if let in buff: m.append(elem[c]) buff = buff[1:] c += 1 else: m.append(0) dict = {alph[i].lower(): m[i] for i in range(len(alph))} print(*elem, int(eval(make_brackets(state).lower(), {}, dict)))