#include<stdio.h>
#include<algorithm>
#define N 100005
using namespace std;
long long A[N],B[N],C[N],ans;
int opt[N],m,n,i;
void addconst(int l,int r,int v){
	A[l]+=v;A[r+1]-=v;
}
void addvar(int l,int r,int st,int d){
	B[l]+=st;B[r+1]-=st+(r-l)*d;
	C[l+1]+=d;C[r+1]-=d;
}
void work(int x,int y){
	if (x<y){
		addconst(y+1,n,y-x);
		addconst(1,x,y-x);
		addvar(x+1,y,y-x,-1);
	}else {
		addvar(x+1,n,y+n-x,-1);
		addvar(1,y,y,-1);
		addconst(y+1,x,y+n-x);
	}
}
int main(){
	scanf("%d%d",&m,&n);
	for (i=1;i<=m;i++)
		scanf("%d",&opt[i]);
	for (i=1;i<m;i++)
		work(opt[i],opt[i+1]);
	ans=1e18;
	for (i=1;i<=n;i++){
		A[i]+=A[i-1];
		C[i]+=C[i-1];
		B[i]+=B[i-1];
		B[i]+=C[i];
		ans=min(ans,A[i]+B[i]);
	}
	printf("%lld\n",ans);
}