早在公元 863 年,塞萨洛尼基的君士坦丁(Constantine of Thessaloniki,后被称为西里尔,美多德的弟弟)开始为他在中欧的传教工作创造古教会斯拉夫字母之前,马其顿就产生了一份珍贵的羊皮纸记录。
该文献透露,君士坦丁不仅在尝试字母,还在尝试一种数字符号系统。受古代关于无限的思想影响,他提出了一个新颖的概念:每个正整数都应该有其独特的符号。为了生成这样的符号,他描述了一个精确的步骤——也就是我们今天所说的算法。
他从数字 1 开始,简单地用希腊字母 $\Delta$ 表示。对于大于 1 的数字,过程以同样的方式开始,先写下 $\Delta$,然后一步一步继续:
- 如果当前数字是奇数,则在上一字母的右上方一个位置写下一个新的字母 $\Delta$。
- 如果当前数字是偶数,则在上一字母的左上方一个位置写下一个新的字母 $\Delta$。
- 然后将该数字除以 2,舍弃小数部分。如果结果变为 1,则过程结束;否则,用新的值重复该过程。
接下来,君士坦丁将得到的图案排列成我们今天所说的矩形矩阵。每个字母 $\Delta$ 占据一行,且每个字母 $\Delta$ 相对于前一行的字母向左或向右移动一列。矩阵被尽可能地收窄,所有空位置都用点填充。不存在完全由点组成的列。
例如,数字 10 的符号占据一个四行两列的矩阵。字母 $\Delta$ 出现在第一列的第一行和第三行,以及第二列的第二行和第四行。
羊皮纸上甚至还留有君士坦丁尝试对这种特定形式写出的数字进行加法运算的痕迹——我们现在将尝试重建这一运算。在我们的重建中,我们将用井号 # 代替君士坦丁原本的字母 $\Delta$。
输入格式
输入包含两个用君士坦丁表示法书写的数字。
每个数字由以下几行呈现:第一行包含一个整数 $N$($1 \le N \le 30$),表示代表该数字的矩阵的行数。接下来的 $N$ 行中,每行代表矩阵的一行。所有行都包含相同数量的字符,每个字符要么是点(.),要么是井号(#)。
第一个数字之后立即紧跟第二个数字,中间没有任何空行。
输出格式
输出这两个输入数字的和,使用根据君士坦丁规则构建的单个符号表示,格式与输入数字相同。
样例
输入样例 1
3 #.. .#. ..# 3 .# #. .#
输出样例 1
4 #. .# #. .#
输入样例 2
2 #. .# 4 ..# .#. #.. .#.
输出样例 2
5 #.... .#... ..#.. ...#. ....#