#include #include #include #include #include #include #include using namespace std; typedef long long ll; const ll MOD = 1000000007; ll N, K; ll A[200000]; ll cum_sum[200001]; ll inv(ll n){ if(n == 1) return 1; else return MOD-inv(MOD%n)*(MOD/n)%MOD; } ll cnt[200005]; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout << setprecision(10) << fixed; cin >> N >> K; for(int i = 0; i < N; i++) cin >> A[i]; for(int i = 0; i < N; i++) cum_sum[i+1] = cum_sum[i]+A[i]; ll ans = 0; cnt[1] = 1; for(int i = 2; i <= N; i++){ cnt[i] = (((cnt[i-1]*(K+i-1))%MOD)*inv(i-1))%MOD; } for(int i = 1; i <= N; i++){ ll c = (cnt[i]*cnt[N-i+1])%MOD; ans += (A[i-1]*c)%MOD; ans %= MOD; } cout << ans << endl; }