3351. 和泉纱雾与化学

【问题描述】

在那遥远的学园都市,住着和泉纱雾和和泉正宗,他们都是柯学家。  

学园都市的里共有26种元素,分别用大写字母AZ表示。

学园都市中的物质由元素构成,对于任意的物质,每种元素的出现次数都是非负整数,且至少有1种物质的出现次数为正整数,我们把每种元素在物质中的出现次数称作该元素在该物质中的下标。我们可以按AZ的顺序写下每种元素及其下标来描述一个物质。这是一个例子:A0B0C0D0E0F0G0H0I0J1K0L0M0N0O0P0Q1R0S0T0U0V0W0X0Y2Z0  

这个例子描述了一种JQ各出现1次,Y出现2次的物质。 

然而,这种描述方法实在是太麻烦了,于是学园都市中的炼金术士们便尝试简化物质的描述。对于某种物质,我们定义“虚无元素”表示在该物质中下标为 0的元素,“单一元素”表示在该物质中下标为1的元素。针对这两个定义,炼金术士们提出了两种化简方式:

1.省略“虚无元素”:将“虚无元素”的字母和下标省略。如上面的物质可以通过该操作化简为:J1Q1Y2

2.省略“单一元素”的下标:将“单一元素”的下标省略。如上面的物质可以通过该操作化简为:A0B0C0D0E0F0G0H0I0JK0L0M0N0O0P0QR0S0T0U0V0W0X0Y2Z0

特别地,对于同时省略了“虚无元素”和“单一元素”下标的表示,我们把它叫做该物质的“最简式”。如上面物质的“最简式”即为:JQY2。由于学园都市的化学研究仍处于起步阶段,因此对于任意的物质,所有元素下标均为不超过9的非负整数。

化学方程式是描述化学反应的式子。一个化学方程式包含恰好一个等号(=),等号两边是由加号(+)连接的若干物质。 

形象地说,它的形式是这样的: 物质+物质++物质=物质+物质++物质  

除了需要满足上述格式外,元素守恒也是不可忽视的。这表示等号两边所有元素在各物质中的出现次数总和必须相等。比如,这就是一个合法的(格式正确、元素守恒的)化学方程式:   

JQY2+J2=J3QY2  

需要特别注意的是,在化学方程式的书写中,未被化至“最简式”的元素也是可以被接受的。例如,下面的化学方程式也是合法的:

J1Q1Y2+J2=J3Q1Y2

而下面这个化学方程式就不是合法的了,因为它并没有满足元素守恒。

JQY2+J2=JQY

学园都市化学学科的基本知识就介绍到这。祝各位选手武运昌隆! 

所谓化学方程式,即是用加号(+)和等号(=)连接一些化学物质的式子。保证一个化学方程式中含有恰好一个等号(=)。  

化学物质由一些元素(用 大写字母AZ表示)加上下标(保证下标为不超过9的非负整数)连接而成的。例如:JQY2A0J1QY2等。书写时需要保证字典序越小的字母排在越前面。  

需要注意的是,像A0J1QY2这样的物质书写同样是合法的,虽然事实上它和JQY2是等价的。   

我们把下标为1的元素称为“单一元素”,把下标为0的元素称为 “虚无元素”。在书写一种物质时,我们既可以省去“单一元素”的下标,又可以直接省去“虚无元素”。特别地,我们把用这两种规则省略至最简的书写称为该物质的“最简式”。例如,JQY2就是A0J1Q1Y2的最简式。 

既然称之为“方程式”,元素守恒就是必须的了。对于一个化学方程式,元素守恒指的是指等号两边所有元素的下标之和相等。比如,这个化学方程式就是元素守恒的:

JQY2+J2=J3QY2

而这个化学方程式就是不合法的,因为它不满足元素守恒:

JQY2+J2=JQY

作为一名资深柯学家,纱雾自然是整日沉迷在化学狂暴中。某一天,纱雾写下了n个化学方程式,并把它们放在一边,为后续的研究做着准备。然而,正宗不慎打翻了一瓶绿色的试剂,导致纱雾写下的所有化学方程式中,都有恰好1个物质被绿色液体弄得模糊不清了。

于是纱雾狠狠地把正宗批评调教了一番,并要求他将所有模糊不清的物质重新写出来。除此之外,作为惩罚,无论原来纱雾如何书写这些物质,正宗都必须将它们以“最简式”的形式写出。

如果不能完成这些任务,纱雾就会把他从学园都市追杀,还会面临什么空的剧情。面对这么多的化学方程式,弱小、无助又骚的正宗手足无措,于是他找♂到了学园都市最擅长编程的你(初春附体),请你帮他完成任务。 


【输入形式】

第一行2个整数n,m,分别表示化学方程式的数目和纱雾的书写习惯。其中,书写习惯m03之间的整数,对于不同的m,纱雾书写物质的方式不同 (这一信息可能对你解决部分测试点有帮助):

如果m=0,则纱雾在书写方程式时一定会将所有物质化为最简式
如果m=1,则纱雾在书写方程式时一定会将所有物质的虚无元素省略,且不会存在单一元素的下标被省略;
如果m=2,则纱雾在书写方程式时一定会将所有物质单一元素的下标省略,且不会存在虚无元素被省略;
如果m=3,则纱雾在书写方程式时一定不会省略单一元素的下标,也一定不会省略虚无元素
接下来n行,每行一个字符串,描述一个被污染的化学方程式。其中,被污染的物质用?表示,保证对于每一个方程式都会存在恰好1?
数据保证化学方程式严格按照题目背景和题目描述中的格式,且不存在多余的空格或其他字符。


【输出形式】

输出n行,每行一个字符串,表示化为最简式?所表示的物质。特别地,对于无解的情况(即?表示的物质超出学园都市世界化学学科的研究范围), 请输出"No Solution"(不含引号)。【样例输入】

3 0
A=?
?=A+B
C+O2=?

【样例输出】

A
AB
CO2

【样例说明】

对于所有的测试点,保证n≤100,保证每个方程式中等式两边的加号+都不超过5个,这也意味着每行字符串(每个化学方程式)的长度不超过635

【评分标准】

难度等级: 0
总通过次数: 13
总提交次数: 71