如果你玩过足够久的俄罗斯方块,你可能体验过“俄罗斯方块效应”——即使在停止游戏后,依然能看到下落的方块。为了专注于解决问题并避免此类干扰,我们考虑该游戏的一个简化版本。
游戏在一个由方格组成的网格棋盘上进行。棋盘的列从左到右依次编号。棋盘向右和向上无限延伸。每个格子要么是空的,要么是填满的,初始时所有格子均为空。
给定一个包含 $N$ 个矩形方块的序列,方块会依次落入棋盘。方块的大小各不相同。一个大小为 $L$ 的方块要么是竖直的($L \times 1$ 个格子),要么是水平的($1 \times L$ 个格子)。当一个方块在指定的列落下时,它从所有当前已填满格子的上方开始,垂直下落,直到到达棋盘底部或落在已填满的格子上方。一旦方块落地,它将填满其最终占据的格子。
每次方块落地后,如果没有任何空格子上方存在已填满的格子,则游戏被认为是安全的(safe);否则游戏是不安全的(unsafe),此时违规的方块会从棋盘上移除,游戏继续进行下一个方块,就像该方块从未落下过一样。
在下方的示例中(对应第一个样例输入),当第二个方块落地时,游戏变得不安全,因此该方块被移除,后续方块使游戏保持安全。
给定方块序列及其下落位置,你的任务是确定对于每个方块,它在落地后是否会使棋盘变得不安全。
输入格式
第一行包含一个整数 $N$ ($1 \le N \le 2 \cdot 10^5$),表示方块的数量。
接下来的 $N$ 行,每行描述一个方块,包含一个字符 $C$ 和两个整数 $L$ 和 $P$ ($1 \le L \le 10^9$ 且 $1 \le P \le 10^{18}$),分别代表方块的类型、长度以及下落的位置。对于竖直方块,$C$ 为字符 “|”(竖线),方块占据 $L \times 1$ 个格子,并从第 $P$ 列落下。对于水平方块,$C$ 为字符 “-”(连字符),方块占据 $1 \times L$ 个格子,并从第 $P, P+1, \dots, P+L-1$ 列落下。
输出格式
输出一行长度为 $N$ 的字符串。如果第 $i$ 个方块落地后游戏立即变得不安全,则字符串的第 $i$ 个字符必须为大写字母 “U”,否则为大写字母 “S”。
样例
输入 1
4 | 3 1 - 2 1 | 3 2 - 2 1
输出 1
SUSS
输入 2
4 | 3 1 | 2 3 | 1 2 - 2 2
输出 2
SSSU