using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] p = Console.ReadLine().Split(' ');
            int n = int.Parse(p[0]);
            int x = int.Parse(p[1]);
            int[] a = new int[n];
            int b,c,r=0,z;
            string[] q = Console.ReadLine().Split(' ');
            for (int i = 0; i < n; i++)
            {
                a[i] = int.Parse(q[i]); 
            }
            b = a.Max();
            c = a.Min();
            //pocetna pozicija MANJA od minimalne cifre(komsije) ali i VECA od 0
            if (x <= c && x >= 0)
            {
                r = b - x;
            }
            //pocetna pozicija MANJA od minimalne cifre(komsije) ali i MANJA od 0
            else if (x <= c && x < 0 && b >= 0)
            {
                z = Math.Abs(x);
                r = z + b;
            }
            //pocetna pozicija MANJA od minimalne cifre(komsije) ali i MANJA od 0, i ali max manja od 0
            else if (x <= c && x < 0 && b <= 0)
            {
                //predstojeca dva koraka nista nisu uradila XD
                z = Math.Abs(x);
                b = -b;
                r = Math.Abs(x + b);
            }
            //pocetna pozicija VECA od minimalne cifre(komsije) ali je minimalna VECA OD 0
            else if (x >= c && c > 0 && x <= b)
            {
                r = (x - c) + (b - c);
            }
            //pocetna pozicija VECA od minimalne cifre(komsije) ali je minimalna MANJA od 0
            else if (x >= c && c < 0 && x <= b)
            {
                z = Math.Abs(c);
                r = (z + x) + (z + b);
            }
            //pocetna pozicija VECA od maximalne cifre(komsije) ali je maximalna VECA od 0 i minimalna VECA od 0
            else if (x >= b && b >= 0 && c >= 0)
            {
                r = x - c;
            }
            //pocetna pozicija VECA od maximalne cifre(komsije) ali je maximalna VECA od 0 i minimalna MANJA od 0
            else if (x >= b && b >= 0 && c <= 0)
            {
                z = Math.Abs(c);
                r = x + z;
            }
            //pocetna pozicija VECA od maximalne cifre(komsije) ali je maximalna MANJA od 0
            else if (x >= b && x <= 0)
            {
                r = Math.Abs(c - x);
            }
            Console.WriteLine(r);
        }
    }
}