#2606. 扑克牌游戏----cx201401

扑克牌游戏----cx201401

Background

聪聪和明明两位小朋友正在玩一个扑克牌游戏。每一副扑克牌有黑桃、红桃、草花、方

块四种花色,每种花色有 13 张牌,牌值分别是 Ace、2、3、4、5、6、7、8、9、10、Jack、

Queen、King,如下图所示:

每一轮出牌,聪聪首先拿出一张牌,然后明明也拿出一张牌,当明明拿出的牌与聪聪拿 出的牌花色相同且牌值比聪聪的大时,明明才能获得本轮出牌的胜利,否则聪聪胜利。这里 我们假定牌值的大小关系为:

2<3<4<5<6<7<8<9<10<Jack<Queen<King<Ace

请编程计算某一轮出牌中,当聪聪拿出一张牌后,明明有多少种出牌方案可以获得胜利,并输出牌值最小的出牌方案。

Input

输入共 N+2 行。

第 1 行是表示聪聪的出牌信息,首先是一个代表花色的小写字母,然后是一个代表牌值 的整数,中间用一个空格分隔。

第 2 行一个整数 N(1≤N≤100),表示明明现在手上牌的数量。

接下来 N 行,每行表示明明手中一张牌的信息,首先是一个代表花色的小写字母,然后是一个代表牌值的整数,中间用一个空格分隔。注意,他们玩的游戏有多副牌,所以有些牌可能重复。

说明:表示花色的小写字母为“s”、“h”、“c”、“d”,分别表示黑桃、红桃、草花、方 块。表示牌值的整数为 1 到 13,其中 1 表示 Ace,11 表示 Jack,12 表示 Queen,13 表示 King。

Output

输出共 2 行。

第 1 行输出明明要想获得胜利有多少种出牌方案。花色和牌值都相同的出牌方案算作 一种。如果明明没有可以获胜的出牌方案,则输出“​0​”,此时第 2 ​行不需要输出。

第 2 行输出明明要想获得胜利可以出的牌中牌.值.最.小.的那张牌的信息,包括牌的花色和

牌值,中间用一个空格分隔。花色用小写字母“​s​”、“​h​”、“​c​”、“​d​”分别表示黑桃、红桃、

草花、方块,牌值用 A​​ce​、​2​、​3​、​4​、​5​、​6​、​7​、​8​、​9​、​10​、​Jack​、Q​​ueen​、King ​分别表示 1

到 ​13​。

Samples

h 11
4
c 1
h 12 
h 10 
s 12
1
h Queen
h 5
6
s 1 
h 1
c 10 
h 7
h 12
h 7
3
h 7
h 1
4
s 1 
h 1
c 10
h 13
0

Limitation

【样例 1 解释】

聪聪本轮出的牌位为红心 Jack。明明有 4 张牌,分别为草花 Ace,红心 Queen,红心 10 和黑桃 Queen。明明要想获得胜利,出的牌花色必须和聪聪相同且牌值比聪聪的大,所以只 有 1 种出牌方案,为红心 Queen。

【样例 2 解释】

聪聪本轮出的牌为红心 5,明明有 6 张牌,分别为黑桃 Ace、红心 Ace、草花 10、红心

7、红心 Queen 和红心 7。明明要想获得胜利,出的牌花色必须和聪聪相同且牌值比聪聪的 大,所以有 3 种出牌方案,为红心 Ace、红心 Queen 和红心 7,其中红心 7 ​明明有 2 ​张牌,但只算一种方案。牌值最小的出牌方案为红心 7。

【样例 3 解释】

聪聪本轮出的牌为红心 Ace,明明手上现在有 4 张牌,分别为黑桃 Ace、红心 Ace、草 花 10、红心 King。明明要想获得胜利,出的牌花色必须和聪聪相同且牌值比聪聪的大,但明明手上没有这样的牌,所以输出 0,此时第 2 ​行不需要输出。

【数据范围约定】

所有的输入数据保证 1≤N≤100。