MX_N=int(1e9) MX_K=int(1e8) MX_A=int(1e9) MOD=int(1e9)+7 def main(): N,K=map(int,input().split()) A=list(map(int,input().split())) assert(1<=N<=MX_N) assert(0<=K<=MX_K) for i in range(N): assert(1<=A[i]<=MX_A) ans=0 comb=[1 for i in range(N)] for i in range(1,N): comb[i]=((comb[i-1]*(K+i))%MOD*pow(i,MOD-2,MOD))%MOD for i in range(N): ans+=(comb[i]*comb[N-1-i])%MOD*A[i] ans%=MOD return ans if __name__ == '__main__': print(main())