#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 1e9+7;
const int N = 1010;
int tot,b[N],n,sum0,sum1,res,tt0,tt1;
int qp(int x,int p){
int res=1;
while(p){
if(p%2){
res=res*x%mod;
}
x=x*x%mod;
p/=2;
}
return res%mod;
}
signed main(){
freopen("01.in","r",stdin);
freopen("01.out","w",stdout);
scanf("%lld",&n);
for(int i=1;i<=n;i++){
scanf("%lld",&b[i]);
if(b[i])sum1++;
else sum0++;
}
tt0=qp(2,sum1);
tt1=qp(2,sum0);
// cout<<tt0<<" "<<tt1<<endl;
tot=(tt0+tt1)%mod;
res=qp(tot,n);
printf("%lld",res);
return 0;
}