P0521

[Usaco2011 Feb]Cowlphabet 奶牛文字

[Usaco2011 Feb]Cowlphabet 奶牛文字

约翰的奶牛讲的是别人听不懂的「牛语」。牛语使用的字母就是英文字母,有大小写之分。牛语中存在 PP 个合法的词素,每个词素都由两个字母组成(是有序的字母对)。牛语的单词是由字母组成的序列,一个单词是有意义的充要条件是:任意相邻的两个字母都构成一个合法的词素。

约翰担心他的奶牛正在密谋反对他,于是最近一直在偷听它们的对话。可是,牛语太复杂了,他模模糊糊地只听到了一个单词,并确定了这个单词中有 UU 个大写字母、LL 个小写字母。

现在他想知道,如果这个单词是有意义的,那么有多少种可能性呢?由于这个数字太大了,你只要输出答案对 9765432197654321 取模的结果就可以了。

输入格式

第一行三个用空格隔开的整数 U,L,PU, L, P。

第 22 到第 P+1P+1 行,第 i+1i+1 行有两个字母(每个字母都可能是大写或小写),表示第 ii 个词素,即牛语中一个合法的有序相邻字母对。没有两个词素是完全相同的。

输出格式

一行一个整数,表示符合条件的单词数量对 9765432197654321 取模的结果。

样例输入

2 2 7
AB
ab
BA
ba
Aa
Bb
bB

样例输出

7

样例解释

约翰听到的单词有 22 个大写字母和 22 个小写字母,合法的相邻字母对为 AB、ab、BA、ba、Aa、Bb、bB。

可能的单词为 AabB、Abba、abBA、BAab、BbBb、bBAa、bBbB,共 77 个。

数据范围

  • 1≤U≤2501\le U\le 250,1≤L≤2501\le L\le 250;
  • 1≤P≤2001\le P\le 200,且没有两个词素完全相同。

来源与许可

本题为 USACO 2011 Feb 试题「Cowlphabet 奶牛文字」,题面与测试数据整理自 BZOJ 2272。

样例 1

输入

2 2 7
AB
ab
BA
ba
Aa
Bb
bB

INPUT DETAILS:

The word Farmer John overheard had 2 uppercase and 2 lowercase
letters.  The valid pairs of adjacent letters are AB, ab, BA, ba,
Aa, Bb and bB.

输出

7