[CQOI2015]标识设计
题号:NC19938
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

 一家名字缩写为LLL的公司正在设计logo,他们的初步方案是在一张方格上放置3个L形的图案以及一些额外的装饰性图形,例如:
  (灰色区域表示装饰性图形)

3个L图案和装饰性图形均放置在方格之中,且必须占满方格。“L”的横竖笔画长短均可,但长度必须大于0(即不能退化为一条线段)。另外,为了使L图案醒目且容易辨别,设计师规定3个L形图案之间不能有重叠或交叉的部分。当然,L形图案也不能穿过装饰图形或与之重叠。

现在设计师已经确定了所有装饰性图形的位置,希望你计算一下放置不同的L形图案总共可以设计出多少个logo。

输入描述:

输入文件第一行包含两个空格分开的正整数n和m,分别表示方格的行数和列数。
接下来n行,每行m个字符,为"."或"#"。"#"表示该方格为装饰性图形,"."表示可以放置L图案的空白区域。

输出描述:

输出一个整数,为可能的logo总数。
示例1

输入

复制
4 4
....
#...
....
..#.

输出

复制
4

备注:

对于100%的数据,保证