#include<bits/stdc++.h> usingnamespacestd; constint Mod = 1e9+7; typedeflonglong ll; ll mod_pow(ll x, ll n){ ll res = 1; for (; n > 0; n >>= 1) { if (n & 1) res = res * x % Mod; x = x * x % Mod; } return res; } int cnt[600]; voidadd(int &a, ll b){ a = (a + b) % Mod; } intmain(){ int n; scanf("%d", &n); int ans = 0; add(ans, mod_pow(2, n - 1) - 1);
for (int i = 1; i <= n; i++) { int x; scanf("%d", &x); if (x != -1) ++cnt[x]; } for (int x = 1; x <= n; x++) { if (cnt[x] > 0) add(ans, 1 - mod_pow(2, cnt[x])); } add(ans, Mod); printf("%d\n", ans); }