Super Poker II
有一副无限大的超级扑克牌。对于每个正合数 ,牌组中恰好有四张点数为 的牌,花色分别为黑桃(S)、红桃(H)、梅花(C)和方块(D)。牌组中不存在点数为其他数的牌。
正合数是指约数个数多于 的正整数。例如, 有 共 个约数,因此 是合数; 只有 共 个约数,因此 不是合数。特别地, 只有 个约数,也不是合数。
给定一个正整数 ,需要从每种花色中恰好选出一张牌,即分别选出一张黑桃、一张红桃、一张梅花和一张方块,使这四张牌的点数之和等于 。例如,当 时, 是一种选法。
牌组中的部分牌已经遗失,不能再被选取。现在给定两个正整数 和 ,请分别求出当 时,满足条件的选牌方案数。
输入格式
输入包含不超过 组测试数据。
每组测试数据的第一行包含三个整数 ,其中 表示遗失牌的数量。
下一行包含 个字符串,表示遗失的牌。每张牌表示为 valueS、valueH、valueC 或 valueD,其中 value 是满足 的合数,末尾字母表示花色。任意两张遗失的牌互不相同。
输入以 结束,这一行不属于任何测试数据。
至多有一组测试数据满足 、 且 。对于其他测试数据,满足 且 。
输出格式
对于每组测试数据,依次输出 个整数,每个整数占一行,分别表示 时的选牌方案数。
由于答案可能很大,请将每个答案对 取模后输出。
每组测试数据输出结束后,再输出一个空行。
样例输入
12 20 2
4S 6H
0 0 0
样例输出
0
0
0
0
0
0
1
0
3
数据范围
- 输入包含不超过 组测试数据;
- 遗失牌的点数 为合数,且满足 ;
- 任意两张遗失的牌互不相同;
- 至多有一组测试数据满足 、 且 ;
- 对于其他测试数据,满足 且 。
来源与许可
本题为湖南省第七届大学生程序设计大赛试题「Super Poker II」,题面与测试数据整理自 BZOJ。
样例 1
输入
12 20 2
4S 6H
0 0 0
输出
0
0
0
0
0
0
1
0
3