//Normal #define _GLIBCXX_DEBUG #define ll long long #include using namespace std; using Graph = vector>; void print(auto a){ cout << a; } void prints(auto a){ cout << a << " "; } void prints(){ cout << " "; } void printl(auto a){ cout << a << endl; } void printl(){ cout << endl; } void fix(int n){ cout << fixed << setprecision(n); } int siz(string s){ return (int)s.size(); } int main(){ int N; cin >> N; vector> X(N, vector(N, 0)); for(int i = 0; i < N; i++) cin >> X[0][i]; for(int i = 1; i < N; i++){ for(int j = 0; i+j < N; j++){ ll sum = X[i-1][j] + X[i-1][j+1]; X[i][j] = sum%1000000007; } } printl(X[N-1][0]); return 0; }