Збалансовані підмножини#11242

Збалансовані підмножини

2 секунди
128 мегабайтів
Дуже складна

Пасовище Фермера Джона можна уявити як велику 2D-решітку комірок, позначених впорядкованими парами для всіх i~(1 \le i \le n), j~(1 \le j \le n). Деякі з цих комірок містять траву.

Непорожня підмножина комірок решітки називається "збалансованою", якщо виконуються такі умови:

- Усі комірки підмножини містять траву. - Підмножина є -зв'язною. Це означає, що існує шлях з будь-якої комірки підмножини до будь-якої іншої комірки підмножини, причому дві послідовні комірки шляху є сусідніми горизонтально або вертикально. - Якщо комірки (x_1, y) і (x_2, y) (x_1 \le x_2) належать підмножині, то всі комірки з x_1 \le x \le x_2 також належать підмножині. - Якщо комірки (x, y_1) і (x, y_2) (y_1 \le y_2) належать підмножині, то всі комірки з y_1 \le y \le y_2 також належать підмножині.

Порахуйте кількість збалансованих підмножин за модулем 10^9 + 7.

Вхідні дані

Перший рядок містить число n~(1 \le n \le 150).

Кожен з наступних рядків містить рядок з символів. -ий символ рядка зверху дорівнює , якщо комірка містить траву, або символу в іншому випадку.

Вихідні дані

Виведіть кількість збалансованих підмножин за модулем 10^9 + 7.

Приклади

Приклад 1. Для цього тесту всі -зв'язні підмножини є збалансованими.

G.  .G  ..  ..  GG  .G  ..  G.  GG  .G  G.  GG  GG
.., .., G., .G, .., .G, GG, G., G., GG, GG, .G, GG

Приклад 2. Нижче наведено приклад підмножини, яка задовольняє другій умові (-зв'язності), але не задовольняє третій умові:

GG..
.G..
GG..
....

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading