package main
import (
"bufio"
"fmt"
"os"
)
const MOD int64 = 1000000007
func solve(N int, nums []int) int {
pos, zero := 0, 0
maxv := nums[0]
maxc := 0
for _, v := range nums {
if v > 0 {
pos++
}
if v == 0 {
zero++
}
if v > maxv {
maxv = v
maxc = 1
} else if v == maxv {
maxc++
}
}
if pos > 0 {
res := int64(1)
for i := 0; i < zero; i++ {
res = (res * 2) % MOD
}
return int(res)
}
if maxv == 0 {
res := int64(1)
for i := 0; i < maxc; i++ {
res = (res * 2) % MOD
}
res--
if res < 0 {
res += MOD
}
return int(res)
}
return maxc
}
func main() {
in := bufio.NewReader(os.Stdin)
var N int
fmt.Fscan(in, &N)
nums := make([]int, N)
for i := 0; i < N; i++ {
fmt.Fscan(in, &nums[i])
}
fmt.Println(solve(N, nums))
}
cGFja2FnZSBtYWluCgppbXBvcnQgKAogICAgImJ1ZmlvIgogICAgImZtdCIKICAgICJvcyIKKQoKY29uc3QgTU9EIGludDY0ID0gMTAwMDAwMDAwNwoKZnVuYyBzb2x2ZShOIGludCwgbnVtcyBbXWludCkgaW50IHsKICAgIHBvcywgemVybyA6PSAwLCAwCiAgICBtYXh2IDo9IG51bXNbMF0KICAgIG1heGMgOj0gMAoKICAgIGZvciBfLCB2IDo9IHJhbmdlIG51bXMgewogICAgICAgIGlmIHYgPiAwIHsKICAgICAgICAgICAgcG9zKysKICAgICAgICB9CiAgICAgICAgaWYgdiA9PSAwIHsKICAgICAgICAgICAgemVybysrCiAgICAgICAgfQogICAgICAgIGlmIHYgPiBtYXh2IHsKICAgICAgICAgICAgbWF4diA9IHYKICAgICAgICAgICAgbWF4YyA9IDEKICAgICAgICB9IGVsc2UgaWYgdiA9PSBtYXh2IHsKICAgICAgICAgICAgbWF4YysrCiAgICAgICAgfQogICAgfQoKICAgIGlmIHBvcyA+IDAgewogICAgICAgIHJlcyA6PSBpbnQ2NCgxKQogICAgICAgIGZvciBpIDo9IDA7IGkgPCB6ZXJvOyBpKysgewogICAgICAgICAgICByZXMgPSAocmVzICogMikgJSBNT0QKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGludChyZXMpCiAgICB9CgogICAgaWYgbWF4diA9PSAwIHsKICAgICAgICByZXMgOj0gaW50NjQoMSkKICAgICAgICBmb3IgaSA6PSAwOyBpIDwgbWF4YzsgaSsrIHsKICAgICAgICAgICAgcmVzID0gKHJlcyAqIDIpICUgTU9ECiAgICAgICAgfQogICAgICAgIHJlcy0tCiAgICAgICAgaWYgcmVzIDwgMCB7CiAgICAgICAgICAgIHJlcyArPSBNT0QKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGludChyZXMpCiAgICB9CgogICAgcmV0dXJuIG1heGMKfQoKZnVuYyBtYWluKCkgewogICAgaW4gOj0gYnVmaW8uTmV3UmVhZGVyKG9zLlN0ZGluKQoKICAgIHZhciBOIGludAogICAgZm10LkZzY2FuKGluLCAmTikKCiAgICBudW1zIDo9IG1ha2UoW11pbnQsIE4pCiAgICBmb3IgaSA6PSAwOyBpIDwgTjsgaSsrIHsKICAgICAgICBmbXQuRnNjYW4oaW4sICZudW1zW2ldKQogICAgfQoKICAgIGZtdC5QcmludGxuKHNvbHZlKE4sIG51bXMpKQp9Cg==