import macros macro Please(x): untyped = nnkStmtList.newTree() Please use Nim-ACL Please use Nim-ACL Please use Nim-ACL static: when not defined SecondCompile: # md5sum: 1025af2bb93db634c09cd7f5518212ff atcoder.tar.xz template getFileName():string = instantiationInfo().filename let fn = getFileName() block: let (output, ex) = gorgeEx("if [ -e ./atcoder ]; then exit 1; else exit 0; fi") # doAssert ex == 0, "atcoder directory already exisits" discard staticExec("echo \"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\" | base64 -d > atcoder.tar.xz && tar -Jxvf atcoder.tar.xz") let (output, ex) = gorgeEx("nim cpp -d:release -d:SecondCompile -d:danger --path:./ --opt:speed --multimethods:on --warning[SmallLshouldNotBeUsed]:off --checks:off -o:a.out " & fn) discard staticExec("rm -rf ./atcoder");doAssert ex == 0, output;quit(0) when defined SecondCompile: const DO_CHECK = false;const DEBUG = false else: const DO_CHECK = true;const DEBUG = true const USE_DEFAULT_TABLE = true DO_TEST = false # see https://github.com/zer0-star/Nim-ACL/tree/master/src/atcoder/extra/header/chaemon_header.nim include atcoder/extra/header/chaemon_header proc solve() = let T = nextInt() for _ in T: let N, X = nextInt() var U = ((N + 1) * N) div 2 if U > X: echo -1 else: var X = X ans:seq[int] for i in N - 1: ans.add i + 1 X -= i + 1 ans.add X echo ans.join(" ") discard solve()