Clarke and chemistry

Accepts: 206
Submissions: 601
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
克拉克是一名人格分裂患者。某一天克拉克转换成了一名初中生,去考化学(实在编不下去了QAQ)。  
考完后克拉克发现他没有得到满分,摔!他看了一下卷子,发现一个极其傻逼的化合反应配平他配错了(心里千万只哔~在奔腾)。  
他十分不爽,于是想写一个程序来完成这个问题,于是他把问题交给了你。  

克拉克遇到的化合反应是这样的:  
你有两种化合物,$A$和$B$,$A$由$|A|$种元素组成,$B$由$|B|$种元素组成。  
已知生成物为$C$,且系数为1。求出$A$和$B$的系数$a,b$使得化合反应$aA + bB = C,\ \ a, b \in \text{N}^*$成立。
输入描述
第一行是数据组数$T(1 \le T \le 10)$.  
每组数据第一行是三个整数$A, B, C(1 \le A, B, C \le 26)$,分别表示$|A|, |B|, |C|$。  
接下来$A+B+C$行,每行形如$X\ c$,分别表示$A, B, C$中元素$X$的个数为$c$($X$为$26$个大写字母其中之一,保证同一物质中不会出现重复的元素,$1 \le c \le 100$)  
输出描述
对于每组数据,输出一行。  
如果能配平,输出字典序最小的答案($a$最小的情况下$b$最小)。否则输出NO。
输入样例
2
2 3 5
A 2
B 2
C 3
D 3
E 3
A 4
B 4
C 9
D 9
E 9
2 2 2
A 4
B 4
A 3
B 3
A 9
B 9
输出样例
2 3
NO
Hint
第一组样例,取第一种物质$2$个第二种物质$3$个就能配平得到第三种物质。  
第二组样例,无论怎么弄,都配不出来。