一家新的廉价航空公司“Jumping Jumbo Jets”正计划开始运营。航空公司降低单次航班成本的方法之一是尽量减少机场运营时间,特别是乘客登机所花费的时间。
通过登机桥登机的过程如下: 最初,飞机是空的,所有乘客都在飞机入口前的队列中排队。 飞机共有 $n$ 排座位,中间有一条过道。 每一排中,过道右侧有 $r$ 个座位,过道左侧有 $l$ 个座位。 过道的宽度使得在靠近每一排座位的地方,同一时间最多只能有一名乘客。 我们可以将飞机想象成一个高为 $n$、宽为 $r + 1 + l$ 的矩形网格,其中每个方格最多只能由一名尚未入座的乘客占据。 登机开始后,乘客同时开始移动。移动是离散的,移动到相邻的方格需要一秒钟。 每位乘客都有预定的路径:她将沿着过道从入口走到她所在的排,然后转向她的座位,接着走到她座位旁边的方格,最后入座。 有时乘客必须站立而不是行走。当乘客转向或等待前方乘客时,称该乘客处于“站立”状态。
在每一秒钟内,所有尚未入座的乘客同时按以下方式行动: 如果乘客需要行走,且她路径的下一个方格没有其他乘客站立,她会花费一秒钟走到下一个方格。 如果乘客需要行走,但有其他乘客正站在(未行走)她路径的下一个方格上,她只需等待一秒钟,保持站立。 如果乘客需要转向,则需要一到两秒钟。在此期间,她处于站立状态。 当通往座位的路径畅通时,转向仅需一秒钟。 当她在前往座位的途中必须经过至少一名在她通过时已经入座的乘客时,她必须同时转向并礼貌地请求通过。在这种情况下,无论需要经过多少名乘客,转向都需要两秒钟。 例如,如果乘客有靠窗的座位,而离窗户一排远的座位已经被占用(或当乘客到达那里时将被占用;我们假设每位乘客都知道所有其他乘客的座位),则转向需要两秒钟。 当乘客到达她座位旁边的方格时,她立即入座。 例如,如果座位靠近过道,乘客在转向后不再花费额外时间。 * 再例如,如果乘客的座位距离过道有两个位置,她会花费一秒钟转向(如果靠近过道的两个位置中至少有一个在通过时被占用,则为两秒钟),然后花费两秒钟沿着排走;在下一秒,她就已经入座了。
当所有乘客都入座后,登机过程即告完成。
航班上的所有座位都已售出,所有乘客都已办理登机手续。航空公司计划在机场将乘客排成一队,以使总登机时间最小化。给定 $n$、$r$ 和 $l$ 的值,确定完成登机过程所需的最短时间,以及航空公司为实现最优时间而将所有乘客排成队列的方法数。如果队列中至少有一个位置上的乘客持有不同座位的票,则认为两种排队方式不同。
由于方法数可能非常大,请输出其对 $998\,244\,353$ 取模的结果。
输入格式
第一行包含一个整数 $t$ ($1 \le t \le 100$),表示场景数量。接下来的 $t$ 行,每行包含一个场景,即三个整数 $n$、$r$ 和 $l$ ($1 \le n, r, l \le 10^6$)。
输出格式
对于每个场景,输出两个整数:完成登机过程所需的最短秒数,以及实现最短登机时间的方法数(对 $998\,244\,353$ 取模)。
样例
输入 1
2 3 2 2 1 1 1
输出 1
16 864 4 2