## https://yukicoder.me/problems/no/1693 MOD = 10 ** 9 + 7 MAX_INT = 10 ** 18 def main(): N, M = map(int, input().split()) A = list(map(int, input().split())) answer = 0 c = 1 m0 = M m1 = 1 for a in reversed(A): c *= m0 c %= MOD c *= pow(m1, MOD - 2, MOD) c %= MOD d = (c - 1) % MOD answer += (a * d) % MOD answer %= MOD print(a, answer) m0 += 1 m0 %= MOD m1 += 1 m1 %= MOD for a in A: answer += a answer %= MOD print(answer) if __name__ == "__main__": main()