#include<stdio.h>
#include<stdlib.h>
int n,x,i,a[1000000],sek;
void Spoj(int a[], int l, int s, int d){ 
    int i, j, k,n1=s-l+1,n2=d-s;
    int 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=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(int a[],int l,int d){
    if(l<d){ 
        int s=l+(d-l)/2; 
        MergeSort(a,l,s); 
        MergeSort(a,s+1,d); 
        Spoj(a,l,s,d); 
    } 
}
int main(){
	scanf("%d%d",&n,&x);
	for(i=0; i<n; i++)scanf("%d",&a[i]);
	MergeSort(a,0,n-1);
	if( abs(a[0]-x)<abs(a[n-1]-x))sek=abs(a[n-1]-a[0])+abs(a[0]-x);
	if(abs(a[n-1]-x)<abs(a[0]-x))sek=abs(a[n-1]-x)+abs(a[n-1]-a[0]);
	if(x<a[0])sek=abs(a[n-1]-x);
	if(x>a[n-1])sek=abs(a[0]-x);
	printf("%d",sek);
    return 0;
}