n,k=gets.split.map(&:to_i)
array=gets.split.map(&:to_i)

leftarray=Array.new(n,0)
rightarray=Array.new(n,0)


n.times{|i|
    n.times{|j|
      if array[j]<array[i] && j<i
            leftarray[i]+=1 
      elsif array[j]<array[i] && i<j
            rightarray[i]+=1
      end
    }
}

ans=0

n.times{|s|
    first=rightarray[s]
    last=(k-1)*(rightarray[s]+leftarray[s])+first
    result=(first+last)*k/2
    ans+=result%1000000007
}

puts ans%1000000007