#include using namespace std; #define LL long long #define N 100007 #define mod 1000000007 int a[N],jc[N]={1},f[N]; LL jc_[21]={1}; int n,t[N]; inline void Add(int x,int v){for(;x<=n;x+=x&-x) t[x]+=v;} inline int Sum(int x){int s=0;for(;x;x-=x&-x) s+=t[x];return s;} int PreAns(LL k){ int Ans=0; for(int i=20;i;i--){ LL mtp=jc_[i-1]; int p=k/mtp;k%=mtp; Ans=(Ans+p*(p-1)/2*1ll*(mtp%mod)%mod)%mod; Ans=(Ans+p*1ll*f[i-1]%mod)%mod; Ans=(Ans+(k%mod)*p%mod)%mod; } return Ans; } int main(){ ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); LL k,Ans0=0; cin>>n>>k; if(!k) {cout<<0<<'\n';return 0;} for(int i=1;i<=n;i++) cin>>a[i],Ans0+=(i-1)-Sum(a[i]-1),Add(a[i],1); jc[1]=jc_[1]=1; for(int i=2;i<=20;i++) jc_[i]=jc_[i-1]*i,f[i]=(i*1ll*f[i-1]%mod+i*1ll*(i-1)/2%mod*1ll*(jc_[i-1]%mod)%mod)%mod; k--;int Ans=Ans0%mod; if(!k) {cout<=20){//20!???? Ans0+=now+1; int last=(k%mod)*(Ans0%mod)%mod; Ans=(Ans+last)%mod; Ans=(Ans+PreAns(k))%mod; cout<