Гарний візерунок
Limits: 2 sec., 512 MiB
У Зеника є величезний аркуш паперу в клітинку. Цей аркуш має розмір \(n \cdot 2^y \times m \cdot 2^x\). Щоб зробити Марічці приємно, Зеник вирішив вирізати з нього гарний візерунок. Для цього він \(y\) разів зігнув папір удвоє вертикально, а потім \(x\) разів — горизонтально. Кожного разу Зеник складав папір до верхнього лівого кута — тобто згин завжди опинявся праворуч (під час горизонтального складання), або внизу (під час вертикального складання). Після таких маніпуляцій він отримав листок розміром \(n \times m\).
Потім Зеник узяв ножиці, вирізав деякі клітинки паперу і викинув їх, а все, що залишилося — урочисто назвав візерунком і подарував його Марічці. Тепер Марічці дуже цікаво, скільки ж частинок паперу в неї є. Оскільки це число може бути дуже великим, виведіть остачу від ділення цієї кількості на \(998244353\).
Зверніть увагу, що частинки паперу, які дотикаються лише кутом — не з’єднані між собою.
Input
У першому рядку задано чотири цілі числа \(n\), \(m\), \(y\) та \(x\) — розмір аркуша після всіх згинів і кількість вертикальних та горизонтальних згинів відповідно.
У наступних \(n\) рядках задано
рядки довжини \(m\), що складаються з
символів . та #. Символ #
означає, що Зеник залишив цю клітинку, а символ . — що він
її вирізав.
Output
В єдиному рядку виведіть кількість частинок паперу за модулем числа \(998244353\).
Constraints
\(1 \le n, m \le 500\),
\(0 \le y, x \le 10^9\).
Samples
| Input (stdin) | Output (stdout) |
|---|---|
| 2 2 1 2 ## #. | 1 |
| Input (stdin) | Output (stdout) |
|---|---|
| 3 4 2 1 ##.. #.#. #..# | 12 |
| Input (stdin) | Output (stdout) |
|---|---|
| 4 7 74 47 #..#.#. #.#..## ..#..#. #..#.#. | 621022578 |
Notes
Розгортка "візерунку" Зеника з другого прикладу. Сірим позначені клітинки, які залишились після вирізання.
Submit a solution
| Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
|---|
| Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
|---|