#include <iostream>

using namespace std;
long long a[1000000];
int main()
{
    long long n, x;
    cin >> n >> x;
    for (int i = 0; i < n; i++)
        cin >> a[i];
    int br = 0, k = 0;
    long long RastojanjeLevo0 = 0;
    long long RastojanjeDesno0 = 0;
    long long minDesni = 0;
    long long maxLevi = 0;
        while (br < n){
            if (a[br] > 0){
                minDesni = a[br];
                break;
            }
            br++;
        }
        while (br < k){
        if (a[br] < 0){
            maxLevi = a[br];
            break;
        }
        k++;
        }
        for (long long i = 0; i < n; i++){
        if (a[i] > maxLevi && a[i] < 0)
            maxLevi = a[br];
        if (a[k] < minDesni && a[k] > 0)
            minDesni = a[k];
        }
    for (long long i = 0; i < n; i++){
        if (a[i] < RastojanjeLevo0)
            RastojanjeLevo0 = a[i];
        if (a[i] > RastojanjeDesno0)
            RastojanjeDesno0 = a[i];
    }
    long long RastojanjeLevoX, RastojanjeDesnoX;
    if (RastojanjeDesno0 == 0 )
        RastojanjeDesno0 = maxLevi;
    if (RastojanjeLevo0 == 0)
        RastojanjeLevo0 = minDesni;
    RastojanjeLevoX = abs(x - RastojanjeLevo0);
    RastojanjeDesnoX = abs(RastojanjeDesno0 - x);
    long long RastojanjeLevoDesno = RastojanjeDesno0 - RastojanjeLevo0;
    if (RastojanjeLevoX <= RastojanjeDesnoX)
        cout << RastojanjeLevoX + RastojanjeLevoDesno;
    else
        cout << RastojanjeDesnoX + RastojanjeLevoDesno;
    return 0;
}