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:
Antes de la celda , las rutas no tienen celdas en común.
Desde hasta , inclusive, los mensajeros visitan exactamente la misma secuencia de celdas.
Después de la celda , las rutas no tienen celdas en común.
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.
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.
Imprime un entero: la cantidad de pares de rutas compatibles módulo 10^9+7. Si no existen tales pares, imprime .
Ejemplo 1
Ejemplo 2
Ejemplo 3
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.
Subtarea ( puntos): h,w\leq6.
Subtarea ( puntos): h,w\leq20.
Subtarea ( puntos): h,w\leq70.
Subtarea ( puntos): \min(h,w)\leq6.
Subtarea ( puntos): no hay celdas bloqueadas.
Subtarea ( puntos): a=d o b=c.
Subtarea ( puntos): sin restricciones adicionales.