背景

    nodgd在NOI2014中跪烂了,恰好遇到了同样跪烂的lzmhhh123和liukaiwen,他们就开始各种颓废的游戏。

描述

    nodgd在斗地主,他想快速出完手上的牌,他想知道他手上的牌最少多少次可以出完。
    众所周知,斗地主时手上有17张牌。我们用一个长度为17的字符串来描述手上的牌,其中只包含'3','4','5','6','7','8','9','0','J','Q','K','A','2','*','#'这些字符,其中'0'表示点数为10的牌,'*'表示小王,'#'大王,其他的相信大家都懂的。
    出牌规则如下:
    (1)单张。任意一张牌可以当做一个单张出牌。例如"8","K"。
    (2)对子。任意两张点数相同的牌可以当做一个对子出牌。特别的,一张小王和一张大王也可以当做一个对子出牌。例如"55","AA","*#"。
    (3)三不带。任意三张点数相同的牌可以当做一个三不带出牌。例如"777","QQQ"。
    (4)三带一。任意三张点数相同的牌和另外一张牌可以当做一个三带一出牌。例如"3555","2333","222#","7777"。
    (5)三带对。任意三张点数相同的牌和另外两张点数相同的牌可以当做一个三带对出牌。例如"55566","88KKK"。特别的,大王小王不能当做“另外两张”,即"444*#"是不合法的出牌方案。
    (6)连单张。大于等于'3',小于等于'A'的连续至少五个单张可以当做一个连单张出牌,即连单张中不能包含'2','*'或,'#'。例如"34567","890JQKA","34567890JQKA"。
    (7)连对子。大于等于'3',小于等于'A'的连续至少三个对子可以当做一个连对子出牌,即连对子中同样不能包含'2','*'或'#'。例如"445566","77889900JJ","JJQQKKAA"。
    (8)连三不带。大于等于'3',小于等于'A'的连续至少两个三不带可以当做一个连三不带出牌,即连三不带中同样不能包含'2','*'或'#'。例如"555666777888","QQQKKK"。
    (9)连三带一。大于等于'3',小于等于'A'的连续至少两个三带一可以当做一个连三带一出牌。例如"33344467","3888999Q","557JJJQQQKKK","0JJJQQQQKKKA","4444555566667777"。连三带一中可以包含'2','*'或'#',但这些只能当做每个三带一中的“另外一张牌”,例如"QQQKKKAAA222"是一个合法的连三带一,但只能看做"QQQ2"+"KKK2"+"AAA2"。
    注意1:没有“连三带对”的说法。
    注意2:由于本题只涉及到出牌次数,不涉及玩家与玩家之间的交互,所以没有定义日常中所说的“炸弹”,因为一个“炸弹”也可以看做一个三带一。

输入格式

    输入包含多组测试数据(不超过5组),
    每组数据占一行,一个长度为17的字符串,描述nodgd手上的牌。字符串中只包'3','4','5','6','7','8','9','0','J','Q','K','A','2','*','#'这些字符。

    保证手上的牌合法,即相同点数的牌不超过4张,小王大王分别不超过一张。

输出格式

    一个整数,表示nodgd经过最少多少次可以出完手中的牌。

样例输入

3456756789090JQKA
*J0KA83989650#322

样例输出

3
9

样例解释

    第一组数据中,第一次出牌"34567",第二次"567890",第三次"90JQKA"。

来源

原创