#P15790. [2026作业]米兰达的传送巡游

[2026作业]米兰达的传送巡游

题目描述

Lin-Manuel 正沿着一条由 nn 个格子组成的长条前进,格子从左到右编号为 11nn

他从格子 aa 出发,希望最终停在格子 bb。在整个过程中,他想恰好访问每个格子一次。

从任意格子 xx 出发,他可以普通行走到相邻格子:

  • x>1x>1,可以走到 x1x-1
  • x<nx<n,可以走到 x+1x+1

此外,他还可以请求朋友 Miranda 施展传送魔法。每次使用魔法时,他可以从当前格子 xx 传送到任意格子 yy,但必须满足

gcd(x,y)=1.\gcd(x,y)=1.

Lin-Manuel 不想太麻烦 Miranda,因此希望在完成“从 aa 出发、到 bb 结束、每个格子恰好访问一次”的前提下,使用尽可能少的传送次数。

请输出最少传送次数以及一种对应的访问顺序;如果无论如何都无法完成,输出 1-1

输入格式

第一行包含一个整数 tt,表示测试数据组数。

接下来 tt 行,每行包含三个整数 n,a,bn,a,b,表示长条长度、起点和终点。

输出格式

对于每组数据:

如果无法完成任务,输出一行:

-1

否则,第一行输出一个整数,表示最少需要使用的传送次数。

第二行输出 nn 个两两不同的整数

c1,c2,,cn,c_1,c_2,\ldots,c_n,

表示访问格子的顺序。必须满足:

  • c1=ac_1=a
  • cn=bc_n=b
  • 每个 11nn 的整数恰好出现一次;
  • 相邻两个访问格子之间,要么是普通相邻移动,要么是满足 gcd(ci,ci+1)=1\gcd(c_i,c_{i+1})=1 的一次传送;
  • 所用传送次数达到最小。

若有多种最优方案,输出任意一种即可。

数据范围

  • 1t1031\le t\le 10^3
  • 2n21052\le n\le 2\cdot 10^5
  • 1a,bn1\le a,b\le n
  • aba\ne b
  • 所有测试数据中 nn 的总和不超过 21052\cdot 10^5

样例

输入

4
5 1 5
6 4 5
7 5 3
4 1 3

输出

0
1 2 3 4 5
1
4 3 2 1 6 5
2
5 4 7 6 1 2 3
-1