Один спільний коридор#13119

Один спільний коридор

4 секунди
256 мегабайтів

Місто має вигляд прямокутної таблиці з рядків і стовпців. Рядки пронумеровано згори вниз, а стовпці — зліва направо. Кожна клітинка є або вільною, або заблокованою.

Два кур'єри мають пройти через місто. За один крок кожен кур'єр може перейти в сусідню вільну клітинку праворуч або вниз.

Перший кур'єр починає рух у клітинці і повинен завершити його в . Другий кур'єр починає рух у клітинці і повинен завершити його в .

Два маршрути називаються узгодженими, якщо їхні спільні клітинки утворюють одну неперервну частину обох маршрутів, що містить щонайменше дві клітинки. Ця спільна частина може містити повороти.

Формально мають існувати дві різні клітинки та на обох маршрутах, для яких виконуються такі умови:

Отже, зустріч лише в одній клітинці не підходить. Також не підходять маршрути, які розходяться, а згодом знову зустрічаються.

Знайдіть кількість узгоджених пар маршрутів за модулем 10^9+7. Кур'єри різні: пара визначається маршрутом першого та маршрутом другого кур'єра.

Вхідні дані

У першому рядку задано два цілі числа і (3\leq h,w\leq2000).

У другому рядку задано чотири цілі числа a,b,c,d (2\leq a,d\leq w-1; 2\leq b,c\leq h-1).

Кожен із наступних рядків містить символів, кожен із яких є . або #. Символ . позначає вільну клітинку, а # — заблоковану.

Гарантовано, що клітинки , , та вільні.

Вихідні дані

Виведіть одне ціле число — кількість узгоджених пар маршрутів за модулем 10^9+7. Якщо таких пар немає, виведіть .

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Приклад 3

Loading
Loading

Примітка

У першому прикладі є одна узгоджена пара маршрутів. Їхня спільна частина складається з клітинок та .

У другому прикладі маршрути можуть мати лише одну спільну клітинку , тому відповідь дорівнює .

У третьому прикладі є узгоджених пар маршрутів.

Оцінювання

  1. Підзадача ( балів): h,w\leq6.

  2. Підзадача ( балів): h,w\leq20.

  3. Підзадача ( балів): h,w\leq70.

  4. Підзадача ( балів): \min(h,w)\leq6.

  5. Підзадача ( балів): немає заблокованих клітинок.

  6. Підзадача ( балів): a=d або b=c.

  7. Підзадача ( балів): без додаткових обмежень.