#include <bits/stdc++.h>

/*
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
*/
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define rep(i,l,r) for (int i=l;i<=r;i++)
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define ll long long
#define ull unsigned long long
#define mod 1000000007
#define nul(x) memset((x),0,sizeof((x)))
#define random_jbt mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

using namespace std;


int main(){
    ios;

    int n,x;
    int mn=1e9,mx=-1e9;
    cin>>n>>x;
    for (int i=1;i<=n;i++){
        int d;
        cin>>d;
        mn=min(mn,d);
        mx=max(mx,d);
    }

    if (mn>x){
        cout<<mx-x<<"\n";
    }
    else if (mx<x){
        cout<<x-mn<<"\n";
    }
    else{
        cout<<min(2*(mx-x)+x-mn,mx-x+2*(x-mn))<<"\n";
    }
    return 0;
}