U500483 国士无双

题目背景

作为棋牌类游戏与不均等博弈爱好者,`JHSeng`精通国标、广东、四川和日本麻将,他最喜欢的役种是`国士无双`。

题目描述

在麻将术语中,`国士无双`(或称`十三幺`)是一种仅涉及`幺九牌`的特殊和牌方式。 > 幺九牌: 指一万、九万、一饼、九饼、一条、九条、东风、南风、西风、北风、白板、发财、红中共十三种牌。 它的和牌组合表示为: 1. 手牌中,每类`幺九牌`至少有一张。 2. 存在一类`幺九牌`,张数为二。 手牌同时满足上述1、2条件时,即可`和牌`;手牌仍差一张才能和牌时,即为`听牌`。 为了更好地表示牌型,对牌面约定如下: |牌的种类|表示方法|样例| |---|---|---| |万|数字+m|1m(一万), 2m(二万)| |饼|数字+p|1p(一饼), 2p(二饼)| |条|数字+s|1s(一条), 2s(二条)| |东风|1z|1z(东风)| |南风|2z|2z(南风)| |西风|3z|3z(西风)| |北风|4z|4z(北风)| |白板|5z|5z(白板)| |发财|6z|6z(发财)| |红中|7z|7z(红中)| 例如,下述牌型即为一种合法的**和牌**方案。此时每类幺九牌至少有一张,且有两张`红中`。 ``` 1m9m1p9p1s9s1z2z3z4z5z6z7z7z ``` 显然,从和牌方案中任意移除一张牌,均为合法的**听牌**方案。如从上述牌型移除一张`一万`。 ``` 9m1p9p1s9s1z2z3z4z5z6z7z7z ``` 给定一副手牌(13张),请判定是否已经达成**国士无双听牌**。若已达成,请输出`YES`,并指明听哪张牌;否则输出`NO`。

输入格式

一行,一个长度为26的字符串,代表给定的麻将手牌。

输出格式

输出至少为一行,不超过两行。 第一行应为`YES`或`NO`,代表给定的手牌是否已经**国士无双听牌**。 若已听牌,第二行应输出具体听的牌。 **若同时听多张牌,按字典序输出这些牌,用空格分开。**

说明/提示

- 样例中,缺少一张“一万”即可和牌。 字符串的**字典序**,是指根据字符在字典中的顺序来排列字符串的方法。比较规则如下: 1. 从第一个字符开始逐个比较两个字符串的字符。 2. 若两个字符相同,则继续比较下一个字符。 3. 若遇到不同字符,则字符较小的字符串更靠前。例如,`apple`小于`banana`。 4. 若一个字符串是另一个字符串的前缀,则短的字符串更靠前。例如,`app`小于`apple`。 5. 数字比字母更靠前。