result = 0
GP_sum = K # Handling p = 1 case separately.
mod = 1000000007
for(x in 1 to N) {
if x != 1
GP_sum = GP_sum + (pow(x, K+1)-1) * pow(x-1, mod-2) # Multipyting by inverse modulo of x-1.
GP_sum %= mod
result = result + GP_sum * A[x]
result %= mod
}