#include <bits/stdc++.h>
using namespace std;
 
#define lli long long int
#define REP(i,s,n) for(lli i=s;i<n;i++)
#define NUM 2520
#define INF (1LL<<50)
#define DEBUG 0
#define mp(a,b) make_pair(a,b)
#define SORT(V) sort(V.begin(),V.end())
#define PI (3.141592653589794)
#define TO_STRING(VariableName) # VariableName
#define LOG(x) if(DEBUG)cout<<TO_STRING(x)<<"="<<x<<" "<<endl;
#define LOG2(x,y) if(DEBUG)cout<<TO_STRING(x)<<"="<<x<<" "<<TO_STRING(y)<<"="<<y<<endl;
#define LOG3(x,y,z) if(DEBUG)cout<<TO_STRING(x)<<"="<<x<<" "<<TO_STRING(y)<<"="<<y<<" "<<TO_STRING(z)<<"="<<z<<endl;
#define LOG4(w,x,y,z) if(DEBUG)cout<<TO_STRING(w)<<"="<<w<<" "<<TO_STRING(x)<<"="<<x<<" "<<TO_STRING(y)<<"="<<y<<" "<<TO_STRING(z)<<"="<<z<<endl;
 
template<class T>bool chmax(T & a, const T & b) { if (a < b) { a = b; return 1; } return 0; }
template<class T>bool chmin(T& a, const T& b) { if (b < a) { a = b; return 1; } return 0; }

lli dp[110][110];

#define MOD 1000000007

void solve(){

	lli n;
	cin>>n;

	REP(i,0,n){
		cin>>dp[0][i];
		LOG(dp[0][i]);
	}

	REP(i,1,n+1){
		REP(j,0,n-i){
			dp[i][j] = dp[i-1][j]+dp[i-1][j+1];
			dp[i][j] %= MOD;
			LOG3(dp[i][j],i,j);
			LOG2(dp[i-1][j],dp[i-1][j+1]);
		}
	}

	cout<<dp[n-1][0]%MOD<<endl;

}
 
int main(){

	lli t;
	t=1;
	while(t--)solve();
    
    return 0;
}