import sys,time from itertools import permutations from heapq import heappop,heappush from collections import deque import random import bisect from math import log,gcd input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) def find_euler_tour(N,M,edge): done_counter = [0] * N used = [False] * M visit = [False] * N res = [] for start in range(N): if visit[start]: continue visit[start] = True st = [start] tmp_res = [] while st: v = st[-1] visit[v] = True if done_counter[v] == len(edge[v]): tmp_res.append(v) st.pop() continue nv,eid = edge[v][done_counter[v]] done_counter[v] += 1 if used[eid]: continue used[eid] = True st.append(nv) res.append(tmp_res) return res def solve(N): if N == 1: return ("No",[]) if N & 1 == 0: edge = [[] for v in range(1<>k & 1 == 0: edge[v].append((v^(1<>k & 1 == 0: edge[v].append((v^(1<