#AT0187. 正反卡片

正反卡片

题目描述

小 Z 有 nn 张卡片,每张卡片都有正反两面,其中正面数字为 aia_i,反面数字为 bib_i

对于每张卡片,小 Z 可以选择正面或者反面,问能否使得这些数的和为 mm。如果存在,请输出选择的方案。

输入格式

第一行输入两个正整数 n,mn,m 分别表示卡片的数量和题目中的 mm

接下来有 nn 行,每行两个整数 ai,bia_i,b_i 分别表示第 ii 张卡片的正面数字和反面数字。

输出格式

第一行输出一个字符串。如果存在选择的数字和恰好为 mm,则输出 Yes,否则输出 No

如果是 Yes,你还需要输出一行包含 nn 个字符的字符串 ss。输出的 sis_iHT,用 H 表示第 ii 张卡片选择了正面,T 表示第 ii 张卡片选择了反面。

如果存在多个可能的选择方案,可以输出任意一个

样例

3 11
1 4
2 3
5 7
Yes
THH
5 25
2 8
9 3
4 11
5 1
12 6
No

说明/提示

样例 1 解释

HTT 或者 THH 都是可能的方案。

数据范围

$1\le n \le 100,1\le m \le 10^4,1 \le a_i,b_i\le 100$。