2004: Печерні малюнки

Перегляд у форматі PDF

Надіслати розв'язок

Бали: 35,00 (partial)
Time limit: 2.0s
Memory limit: 256M
Input: stdin
Output: stdout

Author:
Problem type

Бесі стала художницею та створює картини печер! Її поточна робота у процесі - це сітка висоти ~N~, така що кожен ряд сітки містить точно ~M~ квадратів (~1\le N,M\le 1000~). Кожний квадрат може бути порожнім, заповненим скельною породою або водою. Бесі вже намалювала квадрати, які містять скельну породу, включаючи весь контур картини. Тепер вона хоче заповнити деякі порожні квадрати водою так, що якщо б картина була реальною, не було б жодного руху води. Визначається висота квадрата у ~i~-му рядку від верху як ~N + 1-i~. Бесі хоче, щоб її картина задовольняла наступне обмеження:

Припустимо, що квадрат ~a~ заповнений водою. Тоді, якщо існує шлях від ~a~ до квадрата ~b~ за допомогою лише порожніх або водяних квадратів, які не вище за ~a~, так що кожні два сусідні квадрати на шляху мають спільну сторону, то ~b~ також заповнений водою.

Знайти кількість різних картин, які може зробити Бесі за модулем ~10^9+7~. Бесі може заповнити будь-яку кількість порожніх квадратів водою, включаючи нуль або всі.

Input

Перший рядок містить два числа ~N~ та ~M~, розділені пробілом.

Наступні ~N~ рядків введення містять кожен ~M~ символів. Кожен символ це - '.' або '#', що представляє порожній квадрат та квадрат, заповнений скельною породою, відповідно. Перший та останній рядок та перший та останній стовпець містять тільки '#'.

Output

Одне ціле число: кількість картин, що задовольняють обмеженням, за модулем ~10^9+7~.

Оцінювання

В ~40\%~ балів ~N, M\le 10~.

Sample Input 1

4 9
#########
#...#...#
#.#...#.#
#########

Sample Output 1

9

Notes

Якщо квадрат у другому рядку заповнений водою, то всі порожні квадрати повинні бути заповнені водою. В іншому випадку, припустимо, що нічим не заповнені такі квадрати. Тоді Бесі може обрати заповнити будь-яку підмножину трьох горизонтально розташованих областей порожніх квадратів у третьому рядку. Таким чином, кількість картин дорівнює ~1 + 2^3 = 9.~


Коментарі

Please read the guidelines before commenting.


Ще немає коментарів.