#include<iostream>
#include<vector>
#include"string"
using namespace std;

#define FF(x, y, z) for(int x =y; x < z; x++)


int get_num() {
	int lines;
	cin >> lines;
	long long res = 1;
	long index = -1;
	
	FF(i, 0, lines) {
		string s;
		cin >> s;

		if (index == -1) {
			FF(c, 0, s.size()) {
				if (s[c] == '#') {
					index = c;
					break;
				}
			}
		}
		else {
			if (index == 0) {
				res *= 2;
				index++;
				continue;
			}
			if (index == s.size() -1 ) {
				res = res * 2 + 1;
				index--;
				continue;
			}
			else if (s[index+1] == '#') {
				res *= 2;
				index++;
				continue;
			}
			else if (s[index-1] == '#') {
				res = res * 2 + 1;
				index--;
				continue;
			}
		}
		
	}


	return res;
}


int main() {
	int i = get_num() + get_num();
	int lines;
	int min = 0; 
	int max = 0;
	vector<int> pos{};
	int index = 0;
	pos.push_back(0);
	while ( i != 1) {
		if (i %2 == 1) {
			index++;
			max = index > max ? index: max;
		}
		else {
			index--;
			min = index < min ? index: min;
		}
		i = i / 2;
		pos.push_back(index);
	}
	cout << pos.size() << endl;
	for (int k = pos.size() - 1; k >= 0; k--) {
		FF(l, min, max +1) {
			cout << (l == pos[k] ? '#' : '.');
		}
		cout << endl;
	}
    	return 0;
}
