시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB16111066.667%

문제

После побега Колобка Дед и Баба решили построить забор вокруг своего дома, чтобы не допустить повторения истории.

Забор представляет собой многоугольник ненулевой площади, сторонами которого являются доски. Пилить или ломать доски нельзя. Например, из трех досок с длинами $10$, $11$ и $12$ можно построить забор, а из четырех досок с длинами $100$, $1$, $2$ и $3$ --- нельзя.

У Деда нашлось целых $n$ досок, поэтому они с Бабой задались вопросом: а сколько различных способов выбрать несколько досок из имеющихся, чтобы из них затем можно было построить забор? Способы считаются различными, если существует доска, которая используется в одном из них, но не используется в другом.

Пожилым людям надо помогать, так что вам не составит труда решить для них эту задачу! Количество способов может быть довольно большим, поэтому выведите остаток от деления этого количества на число $10^9+7$.

입력

В первой строке входного файла находится одно натуральное число $n$ ($1 \le n \le 4000$) --- количество досок. Во второй строке дано $n$ чисел $l_i$ ($1 \le l_i \le 4000$) --- длины досок.

출력

В выходной файл выведите одно число --- количество способов выбрать доски для постройки забора, взятое по модулю $10^9 + 7$.

예제 입력 1

3
10 11 12

예제 출력 1

1

예제 입력 2

4
100 1 2 3

예제 출력 2

0

예제 입력 3

4
5 5 5 5

예제 출력 3

5