using System;

class MainClass {
  static int f0 (int[] a, int[] b)
  {
    int suma = 0;
    for(int k = 0; k < b.Length; k++)
    {
      for(int i = 0; i < b.Length; i++)
      {
        for(int j = i; j < b[k]; j++)
        {
          suma += a[j];
          Console.WriteLine(suma);
        }
      }
    }
    return suma;
  }
  static int[] smanjiK (int[] b)
  {
    int[] a = new int[1];
    for(int i = 0; i < b.Length; i++)
    {
      for(int j = 1; j <= b[i]; j++)
      {
        a[a.Length-1]=j;
        Array.Resize(ref a, a.Length+1);
      }
    }
    Array.Resize(ref a, a.Length-1);
    foreach(int e in a)
      {
        Console.Write(e + " ");
      }
      Console.WriteLine();
    return a;
  }
  public static void Main (string[] args) {
    string[] red = Console.ReadLine().Split(' ');
    int n = Convert.ToInt32(red[0]);
    int k = Convert.ToInt32(red[1]);
    red = Console.ReadLine().Split(' ');
    int[] a = new int[n];
    int[] b = new int[n];
    b[n-1]=n;
    for(int i = 0; i < red.Length;i++)
    {
      a[i]=Convert.ToInt32(red[i]);
    }
    if(k==0)
    {
      int suma = 0;
      for(int i = 0; i < a.Length; i++)
      {
        suma+=a[i];
      }
      Console.WriteLine(suma);
      return;
    }
    while(k>0)
    {
      b=smanjiK(b);
      k--;
    }
    Console.WriteLine(f0(a,b)%1000000007);
  }
}