def funcH(i, j): return S[i][j] == "." and i+1 < H and S[i+1][j] == "." and (i == 0 or S[i-1][j] == "#") def funcW(i, j): return S[i][j] == "." and j+1 < W and S[i][j+1] == "." and (j == 0 or S[i][j-1] == "#") H, W = map(int, input().split()) S = [input() for _ in range(H)] R = [] C = [] for i in range(H): for j in range(W): if funcH(i, j) or funcW(i, j): cnt = 0 for k in range(j, W): if S[i][k] == "#": break cnt += 1 if 2 <= cnt and funcW(i, j): R.append("a"*cnt) else: R.append("-") cnt = 0 for k in range(i, H): if S[k][j] == "#": break cnt += 1 if 2 <= cnt and funcH(i, j): C.append("a"*cnt) else: C.append("-") print(len(R)) for i in range(len(R)): print(R[i], C[i])