from itertools import combinations def dfs(S): if memo[S]!=-1: return memo[S] idx = [] for i in range(N): if not (S>>i)&1: idx.append(i) res = False for a, b, c in combinations(idx, 3): if (K[a]K[c]) or (K[a]>K[b] and K[b]