#Lutece2342. 夜路

夜路

Migrated from Lutece 2342 夜路

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

pic

朋友,你走过夜路吗?

某天晚上,michaelshuoliu 结束了在图书馆的学习,踏上幽静的小道,准备回寝室接着学。这条小道长为 nn 格,宽为 22 格。一开始,michaelshuoliu 在小道最左上角的格子,他想要走到小道底部。每一步他会从以下三种策略中选择一种:

  1. 向下走一格。
    向下1.png向下2.png
  2. 向左下走一格(如果他在道路左侧则不能选择这一种)。
    向左下.png
  3. 向右下走一格(如果他在道路右侧则不能选择这一种)。
    向右下.png

然而,求学的道路并不总是一帆风顺的,小道上的一些格子可能会停放汽车,汽车会占用 11 格。这给他的行动带来了一定的限制(黑色格子表示该位置停放了汽车):

  1. 他不能走到有汽车的格子上。
    不准1.png不准2.png
  2. 当他向左下或右下走时,遇到以下情况会被挡住。
    不准3.png不准4.png

作为他的朋友,OrangeRain 十分担心他的安全。不够聪明的 OrangeRain 想知道 michaelshuoliu 能否到达小道底部,如果能够到达,则可能的路线有多少种。你能帮帮他吗?

我们认为两条路线是不相同的当且仅当两条路线所走过的格子不完全相同。

Input

第一行包含整数 nn (1n501 \leq n \leq 50),代表小道的长度。

接下来的 nn 行,每行包含一个长度为 22 的字符串代表路况,其中 . 表示道路通畅, x 表示该处有车。michaelshuoliu 的起点为第一行第一列,输入保证这个位置为 .

Output

如果 michaelshuoliu 不能走到小道底部,输出 NO。否则输出 YES,然后另起一行输出一个整数,表示可能的路线种数。

Samples

4
..
.x
x.
..
NO
1
..
YES
1
2
.x
..
YES
2

Resources

电子科技大学第十一届 ACM 趣味程序设计竞赛