#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7; // 假设答案需要对一个大素数取模
int n, m;
vector<string> grid;
// 检查 (x1, y1) 到 (x2, y2) 是否是有效的 L 形图案的一部分
bool isValidLPart(int x1, int y1, int x2, int y2) {
// 这里的实现应该检查 (x1, y1) 到 (x2, y2) 是否是有效的 L 形图案的一部分
// 并且确保它不与装饰性图形重叠
// 需要考虑 L 形图案的两种可能的方向(横放或竖放)
// 省略具体实现
return true; // 示例返回,需要替换为实际的检查逻辑
}
// 尝试在 (x, y) 放置 L 形图案的起点,并递归地尝试放置终点
void placeL(int x, int y, int& count) {
// 如果 (x, y) 超出边界或已被占用,返回
if (x < 0 || x >= n || y < 0 || y >= m || grid[x][y] == '#') return;
}
int main() {
cin >> n >> m;
grid.resize(n);
for (int i = 0; i < n; ++i) {
cin >> grid[i];
}
}