using System; using System.IO; using System.Linq; using System.Numerics; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using static System.Math; using Debug = System.Diagnostics.Debug; using MethodImplOptions = System.Runtime.CompilerServices.MethodImplOptions; using MethodImplAttribute = System.Runtime.CompilerServices.MethodImplAttribute; using static Reader; static class P { static void Main() { var a = NextInt; var b = NextInt; var c = NextInt; Console.WriteLine(Min(Min(Abs(a - b), Abs(a - c)), Abs(b - c))); } } static class Reader { const int BUF_SIZE = 1 << 12; static Stream Stream = Console.OpenStandardInput(); static byte[] Buffer = new byte[BUF_SIZE]; static int ptr = BUF_SIZE - 1; static void Move() { if (++ptr >= Buffer.Length) { Stream.Read(Buffer, 0, BUF_SIZE); ptr = 0; } } public static int NextInt { [MethodImpl(MethodImplOptions.AggressiveInlining)] get { int res = 0; while (Buffer[ptr] < 48) Move(); do { res = res * 10 + (int)(Buffer[ptr] ^ 48); Move(); } while (48 <= Buffer[ptr]); return res; } } }