#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; long long c[200020]; long long mod = 1000000007; long long m_pow(long long x, long long y) { long long ans = 1; while (y > 0) { if ((y & 1) == 1) { ans = ans * x % mod; } x = x * x % mod; y >>= 1; } return ans; } int main() { long long n, k; cin >> n >> k; c[0] = 1; for (long long i = 1; i < n; i++) { c[i] = c[i - 1] * (k + i); c[i] %= mod; c[i] *= m_pow(i, 1000000005); c[i] %= mod; } long long ans = 0; for (int i = 0; i < n; i++) { long long a; cin >> a; a *= c[i]; a %= mod; a *= c[n - i - 1]; a %= mod; ans += a; ans %= mod; } cout << ans << endl; }