Rellenando el arreglo

Dado un arreglo de n elementos, se sabe que todos los valores del arreglo están entre 1 y m. Además, la diferencia absoluta entre dos elementos adyacentes es como máximo 1. Algunos valores se han borrado del arreglo, y se solicita calcular la cantidad de maneras de llenar el arreglo sin violar estas condiciones.

Entrada

La primera línea de la entrada contiene dos enteros n (1 ≤ n ≤ ) y m (1 ≤ m ≤ 100).
La siguiente línea contiene n enteros separados por espacios, (1 ≤ ≤ m) que representan los elementos del arreglo. El valor de igual a 0 indica el valor borrado en la posición i.

Salida

El programa debe imprimir el número de formas de llenar el arreglo que cumplan las condiciones. Debido a que el resultado puede ser muy grande, se deberá imprimir el resultado tomado módulo .

Ejemplos

Entrada
Salida
3 5 2 0 2
3

Explicación

  1. 2 1 2
  1. 2 2 2
  1. 2 3 2
 

Constraints

Time limit: 6 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue