Un corredor compartido#13119

Un corredor compartido

4 segundos
256 megabytes

Una ciudad se representa mediante una cuadrícula rectangular de filas y columnas. Las filas se numeran de arriba hacia abajo y las columnas de izquierda a derecha. Cada celda está libre o bloqueada.

Dos mensajeros deben atravesar la ciudad. En un paso, cada mensajero puede moverse a una celda libre adyacente hacia la derecha o hacia abajo.

El primer mensajero comienza en y debe terminar en . El segundo mensajero comienza en y debe terminar en .

Dos rutas se llaman compatibles si sus celdas comunes forman una única parte contigua de ambas rutas que contiene al menos dos celdas. Esta parte común puede incluir giros.

Formalmente, deben existir dos celdas distintas y en ambas rutas tales que:

Por lo tanto, encontrarse en una sola celda no es suficiente. Las rutas que se separan y vuelven a encontrarse más adelante tampoco son compatibles.

Halla la cantidad de pares de rutas compatibles módulo 10^9+7. Los mensajeros son distintos: un par determina la ruta del primer mensajero y la ruta del segundo mensajero.

Entrada

La primera línea contiene dos enteros y (3\leq h,w\leq2000).

La segunda línea contiene cuatro enteros a,b,c,d (2\leq a,d\leq w-1; 2\leq b,c\leq h-1).

Cada una de las siguientes líneas contiene caracteres, cada uno de ellos . o #. Un punto . denota una celda libre y # denota una celda bloqueada.

Se garantiza que las celdas , , y están libres.

Salida

Imprime un entero: la cantidad de pares de rutas compatibles módulo 10^9+7. Si no existen tales pares, imprime .

Ejemplos

Ejemplo 1

Loading
Loading

Ejemplo 2

Loading
Loading

Ejemplo 3

Loading
Loading

Nota

En el primer ejemplo hay un par de rutas compatibles. Su parte común consta de las celdas y .

En el segundo ejemplo, las rutas solo pueden tener en común la celda , por lo que la respuesta es .

En el tercer ejemplo hay pares de rutas compatibles.

Puntuación

  1. Subtarea ( puntos): h,w\leq6.

  2. Subtarea ( puntos): h,w\leq20.

  3. Subtarea ( puntos): h,w\leq70.

  4. Subtarea ( puntos): \min(h,w)\leq6.

  5. Subtarea ( puntos): no hay celdas bloqueadas.

  6. Subtarea ( puntos): a=d o b=c.

  7. Subtarea ( puntos): sin restricciones adicionales.