#include<stdio.h>
#include<math.h>
void spoj(long long a[],long long l,long long s,long long d){
    int i,j,k,n1=s-l+1,n2=d-s,L[n1],D[n2]; 
    for (i=0;i<n1;i++)L[i]=a[l+i]; 
    for (j=0;j<n2;j++)D[j]=a[s+1+j]; 
    i=0;
    j=0; 
    k=l; 
    while (i<n1 && j<n2){ 
        if (L[i]<=D[j]){ 
            a[k]=L[i]; 
            i++; 
        } 
        else{ 
            a[k]=D[j]; 
            j++; 
        } 
        k++; 
    } 
    while(i<n1){ 
        a[k]=L[i]; 
        i++; 
        k++; 
    } 
    while (j < n2){ 
        a[k]=D[j]; 
        j++; 
        k++; 
    } 
} 
void mergeSort(long long a[],long long l,long long r){
	long long s=l+(r-l)/2; 
    if (l < r) { 
        mergeSort(a,l,s); 
        mergeSort(a,s+1,r); 
  		spoj(a,l,s,r); 
    } 
} 
int main(){
	long long n,x,a[1000000],t;
	scanf("%lld%lld",&n,&x);
	for(int i=0;i<n;i++)scanf("%lld",&a[i]);
	mergeSort(a,0,n-1);
	if(abs(a[0]-x) < abs(a[n-1]-x))t=abs(a[0]-x)+abs(a[n-1]-a[0]);
	else t=abs(a[n-1]-x)+abs(a[n-1]-a[0]);
	printf("%lld",t);
	return 0;
}