#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define _USE_MATH_DEFINES #define inf 999999999999999999 #define rep(i,n,m) for(lli i=(lli)(n);i<(lli)(m);++i) #define reep(i,n,m) for(int i=(int)(n);i<=(int)(m);++i) #define per(i,m,n) for(lli i=(int)(m)-1;i>=(int)(n);--i) #define st(n) sort(n.begin(), n.end()) #define rev(n) reverse(n.begin(),n.end()) #define ou(S) cout << S << endl #define pb(n) push_back(n) #define ue(N) N.erase(unique(N.begin(),N.end()),N.end()); #define nou(S) cout << S #define hou(S) cout << setprecision(30) << S << endl #define vec(K,L,N,S) vector K(N,S) #define dv(K,L,N,M,S) vector> K(N,vector(M,S)) #define tv(K,L,N,M,R,S) vector>> K(N,vector>(M,vector(R,S))) #define pint pair #define paf(L,R) pair #define maxx 5100000 #define chmax(a, b) a = (((a)<(b)) ? (b) : (a)) #define chmin(a, b) a = (((a)>(b)) ? (b) : (a)) #define endl "\n" typedef long long int lli; typedef unsigned long long int uli; const uli mod = 1e9 + 7; using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; vector a(n); for(int i = 0; i < n; ++i) { cin>>a[i]; } for(int j = n-1; j>=0; --j) { for(int i = 0; i < j; ++i) { a[i] = (a[i] % mod) + (a[i + 1] % mod); //cout << a[i] << ' '; } } //cout << endl; cout << a[0] % mod << endl; }