def aa(q): global mod,x return f[q]*g[q]%mod*x%mod n,k=map(int,input().split());mod=10**9+7 a=list(map(int,input().split())) x=1 for i in range(1,k+1): x*=i;x%=mod f=[x]*10**6;g=[1]*len(f);x=pow(x,mod-2,mod) for i in range(1,len(f)): f[i]=f[i-1]*(i+k)%mod g[i]=g[i-1]*i%mod g[-1]=pow(g[-1],mod-2,mod) for i in range(len(f)-1,0,-1): g[i-1]=g[i]*i%mod ans=0 for i in range(n): ans+=aa(i)*aa(n-i-1)%mod*a[i]%mod print(ans%mod)