#include <bits/stdc++.h>
using namespace std;
const int inf = 1 << 30, mod = 1e9 + 7, maxn = 2333333;
int pw(int x, int y) {
  if (!y) return 1;
  if (y == 1) return x;
  int mid = pw(x, y >> 1);
  if (y & 1) return 1ll * mid * mid % mod * x % mod;
  return 1ll * mid * mid % mod;
}
int cnt[200005];
int curc0, curc;
int c[maxn], d[maxn];
int n;
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    int x;
    scanf("%d", &x);
    if (~x) ++cnt[x];
  }
  int ans = pw(2, n - 1) - 1;
  for (int i = 1; i <= n; i++) {
    if (cnt[i]) {
      ans = (ans - pw(2ll, cnt[i]) + 1) % mod;
      ans = (ans + mod) % mod;
    }
  }
  printf("%d\n", ans);
  return 0;
}
