#include<bits/stdc++.h>  

using namespace std;
const int inf=1e9;
const int maxn=2010;

int dp[maxn][maxn]; // 1 个硬币在 A[i] 另一个硬币在 j 的最优值   
int n,q,a,b;
int A[maxn],B[maxn],MAX,ans=inf;
int main()
{
	memset(dp,0x3f,sizeof(dp));
	scanf("%d%d%d%d",&n,&q,&a,&b);
	for(int i=1;i<=q;++i) {
		scanf("%d",&A[i]);MAX=max(A[i],MAX);
	}MAX=max(MAX,max(a,b));
	A[0]=a; 
	dp[0][b]=0;
	for(int i=1;i<=q;i++) {
		for(int j=0;j<=MAX;++j) {
			dp[i][j]=min(dp[i][j],dp[i-1][j]+abs(A[i]-A[i-1]));dp[i][A[i-1]]=min(dp[i][A[i-1]],dp[i-1][j]+abs(A[i]-j));
		}
	}
	for(int j=0;j<=MAX;++j) ans=min(ans,dp[q][j]);cout<<ans<<"\n"; 
}


