近期发现部分用户尝试利用判题系统的评测信息进行作弊,严重破坏了公平竞争的环境。为维护良好的交流与学习氛围,已对判题机进行了优化,当程序遇到测试点不通过时会立即返回而不评测更多测试点;并且延长提交间隔为60秒。作弊行为不仅违背了学习的初衷,还侵害了其他用户的公平权益,希望所有用户能够遵守规范,专注算法与思维能力的提升。对于恶意多次尝试的用户,我们将保留进一步处置的权利。 —— Administrator

100816 - 十字斩

Time Limit

1000 毫秒

Memory Limit

128 MB

通过次数

6

提交次数

9

在一个n×n的矩阵中,一部分格子被“点字斩”斩掉了,露出了背景,背景用#表示;剩余部分用.表示。若剩余部分能用“十字斩”全部斩掉并且不会斩到背景则胜利。

使用十字斩遵循以下规则:

1、十字斩覆盖的范围为5格,即中心和上下左右。

2、每个.被十字斩斩中就会消失并且露出背景。

3、若十字斩斩到背景,则失败。

Input

第一行,一个整数n表示矩阵的大小。

接下来n行,每行n个仅可能包含#.的字符。

对于100%的数据:

3 \le n \le 500

Output

能够成功输出"YES",否则输出"NO"。

Examples

Input

3
#.#
...
#.#

Output

YES

Input

4
##.#
#...
####
##.#

Output

NO

Input

5
#.###
....#
#....
###.#
#####

Output

YES