卡片翻面 - 代码源竞赛平台

题目描述

蜗蜗有 NN 张卡片,第 ii 张卡片的正面写着 aia_i,反面写着 bib_i。每张卡片必须选择一面朝上,使所有朝上的数字之和恰好等于 SS。

请你判断是否存在满足条件的翻牌方案。如果存在,还需要输出任意一组方案,其中 H 表示第 ii 张卡片选择正面,T 表示选择反面。

输入格式

第一行包含两个整数 NN 和 SS。

接下来 NN 行,每行包含两个整数 aia_i 和 bib_i,分别表示第 ii 张卡片正面和反面的数字。

输出格式

如果不存在合法方案,输出 No。

如果存在合法方案,第一行输出 Yes,第二行输出一个长度为 NN 的字符串,表示每张卡片选择的面。

样例

3 10
1 2
3 4
5 6
Yes
HHT
2 7
1 2
3 4
No

样例解释

样例 1 中选择前两张卡片的正面和第三张卡片的反面,数字之和为 1+3+6=101+3+6=10,因此方案字符串为 HHT。

数据范围

对于 100% 的数据,保证 1≤N≤1001\le N\le100,1≤S≤1041\le S\le10^4,1≤ai,bi≤1041\le a_i,b_i\le10^4。