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: n, k = map(int, input().split())
  # 10**9+7  で割った余り
  # k = k %(10**9 + 7)
  # その文字iより前に大きな数字
  before_cnt = 0
  # その文字より後に大きな数字
  after_cnt = 0
  n_list = list(map(int, input().split()))
  for i in range(n - 1):
      for j in range(i + 1, n):
          if n_list[i] > n_list[j]:
              before_cnt += 1
          elif n_list[i] < n_list[j]:
              # print("i",i,"j",j)
              after_cnt += 1
              """
        if i < j:
          after_cnt+=1
        else:
          before_cnt+=1
  """
  kurikaesi = int((1 + k) * k // 2)
  # print("type",type(k),"kurikaesi",kurikaesi)
  # print(after_cnt, before_cnt)
  print(((after_cnt * (kurikaesi - k) + before_cnt * kurikaesi)) % (10**9 + 7))
  
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."}]