output_description: Print the inversion number of B, modulo 10^9 + 7.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N K
      A_0 A_1 ... A_{N - 1}
attempt: import copy
  
  
  def j(n):
      if n:
          print("Yes")
      else:
          print("No")
      exit(0)
  
  
  rem = 10**9 + 7
  
  """
  def ct(x,y):
      if (x>y):print("+")
      elif (x<y): print("-")
      else: print("?")
  """
  
  
  def ip():
      return int(input())
  
  
  def iprow():
      return [int(i) for i in input().split()]
  
  
  def ips():
      return (int(i) for i in input().split())
  
  
  def printrow(a):
      for i in a:
          print(i)
  
  
  s = 0
  n, r = ips()
  a = iprow()
  other = 0
  for i in range(n):
      for k in range(n):
          if a[i] > a[k] and i < k:
              s += 1
          elif i > k and a[i] > a[k]:
              other += 1
  adder = 0
  rate = s
  ans = 0
  ans = ((s + (s * r)) * r) // 2 + ((other + other * (r - 1)) * (r - 1)) // 2
  print(ans % rem)
  
problem_description: Statement
  
  We have a sequence of N integers A~=~A_0,~A_1,~...,~A_{N - 1}.
  
  Let B be a sequence of K \times N integers obtained by concatenating K copies
  of A. For example, if A~=~1,~3,~2 and K~=~2, B~=~1,~3,~2,~1,~3,~2.
  
  Find the inversion number of B, modulo 10^9 + 7.
  
  Here the inversion number of B is defined as the number of ordered pairs of
  integers (i,~j)~(0 \leq i < j \leq K \times N - 1) such that B_i > B_j.
samples: [{"input": "2 2\n    2 1", "output": "3\n    \n\nIn this case, B~=~2,~1,~2,~1. We have:\n\n  * B_0 > B_1\n  * B_0 > B_3\n  * B_2 > B_3\n\nThus, the inversion number of B is 3.\n\n* * *"}, {"input": "3 5\n    1 1 1", "output": "0\n    \n\nA may contain multiple occurrences of the same number.\n\n* * *"}, {"input": "10 998244353\n    10 9 8 7 5 6 3 4 2 1", "output": "185297239\n    \n\nBe sure to print the output modulo 10^9 + 7."}]