using System;
using System.Collections;

namespace n_faktorijal
{
    class Program
    {
        static void Main(string[] args)
        {
            //ucitavanje
            string[] Nk = Console.ReadLine().Split();
            int N = int.Parse(Nk[0]);
            int k = int.Parse(Nk[1]);
            ArrayList ALista = new ArrayList();
            string[] A2 = Console.ReadLine().Split();
            for (int i = 0; i < N; i++)
            {
                int A1 = int.Parse(A2[i]);
                ALista.Add(A1);
                A1 = 0;               
            }



            int[] A = (int[])ALista.ToArray(typeof(int));
            //funkcija f
            int suma = 0;
            int suma1 = 0;
            int suma2 = 0;
            //ako je k = 0
            if (k == 0)
            {
                for (int i = 0; i < N; i++)
                {
                    suma += A[i];
                }
            }
            //ako je k > 0
            else
            {
                //sabira sve dok je k > 0
                for (int k1 = k; k1 > 0; k1--)
                {
                    for (int p = 0; p < N; p++)
                    {
                        for (int q = p; q < N; q++)
                        {
                            suma1 += A[q];
                        }
                        for (int m = N - 1; m > p; m--)
                        {
                            suma1 += A[m];
                        }
                        suma += suma1;

                        suma1 = 0;

                    }

                }   
                //kad k dodje do 0
                for (int i = 0; i < N; i++)
                {
                    suma += A[i];
                }
            }
            suma2 = A[0];
            Console.WriteLine((suma + suma2) % 1000000007);
        }
    }
}