제단

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

상근이는 성적이 오르기를 기원하며 $N$개의 열로 이루어진 제단을 쌓기로 했다.

제단의 각 열의 높이는 정수이고, 처음에는 모든 열의 높이가 $0$이다. 제단은 다음 과정을 반복하여 만든다.

  1. 높이가 모두 같은, 연속한 열들의 구간을 하나 고른다.
  2. 고른 구간에서 양 끝의 두 열을 제외한 나머지 모든 열의 높이를 $1$씩 올린다.

아래 그림은 제단을 쌓는 과정의 한 예이다.

오랜 세월이 흐르는 동안 여러 도둑이 제단의 일부 열을 훔쳐 갔다. 상근이의 먼 후손은 지금 남아 있는 열들의 높이만 알고 있으며, 이 높이와 일치하도록 쌓을 수 있는 제단이 몇 가지인지 세려고 한다.

남아 있는 높이가 주어졌을 때, 이 높이와 일치하는 제단의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 제단의 열의 개수 $N$이 주어진다. ($1 \le N \le 10^4$)

둘째 줄에 공백으로 구분된 $N$개의 정수 $h_1, h_2, \dots, h_N$이 주어진다. ($-1 \le h_i \le 10^4$) $h_i$는 $i$번째 열의 높이이며, $-1$이면 그 열은 도둑이 훔쳐 가 높이를 알 수 없음을 뜻한다.

출력

남아 있는 높이와 일치하는 제단의 개수를 $10^9 + 7$로 나눈 나머지를 첫째 줄에 출력한다.