数字三角形
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

观察下面的数字三角形。




我们称这个数字三角形的高度为这个三角形的大小。可以发现,一个大小为 n 的数字三角形,第 i 行会有 i 个数字。

我们称从最高点到底部任意处结束的一条道路叫做路径

在上面的样例中,7 \to 3 \to 8 \to 7 \to 5 是一条路径。

你的任务如下:给定 T 次询问,每次询问给出一个数。你需要构造出一个数字三角形,使对于每次询问,总存在一条路径,使得路径上的数字的和恰好是给定的数。要求输出路径。具体细节可以参考输出格式与样例输出。


输入描述:

第一行给出一个整数 T \; (1 \leq T \leq 10^5),表示测试数据的组数。

接下来有 T 行,每行给出一个正整数 x_i \; (0 \leq x_i \leq 10^6),表示第 i 次询问的数字。

输出描述:

本题使用 special judge,请严格按照以下格式输出。

第一行输出一个数 n\; (1 \leq n \leq 25),表示数字三角形的大小。

接下来有 n 行,每行有 i 个数,表示具体的数字三角形。设 a_{ij} 是第 i 行第 j 列的数字,要求 0 \leq a_{ij} \leq 10^6。每个数字之间用一个空格隔开。

接下来有 T 行字符串,每个字符串的长度为 n - 1,表示第 i 个询问所输出的路径。具体要求如下:

s_{ij} 是第 i 个询问的字符串的第 j 个字符,如果s_{ij} = L,则走向数字三角形的左侧,如果s_{ij} = R,则走向数字三角形的右侧。具体可以参考样例。

示例1

输入

复制
5
1
2
3
4
5

输出

复制
5
0
0 0
0 0 0
0 0 0 0
1 2 3 4 5
LLLL
LLLR
LLRR
LRRR
RRRR

说明

对于样例第三个询问的图示如下