from bisect import * from math import * from collections import * from heapq import * import sys sys.setrecursionlimit(10 ** 6) int1 = lambda x: int(x) - 1 p2D = lambda x: print(*x, sep="\n") def II(): return int(sys.stdin.readline()) def MI(): return map(int, sys.stdin.readline().split()) def MF(): return map(float, sys.stdin.readline().split()) def LI(): return list(map(int, sys.stdin.readline().split())) def LF(): return list(map(float, sys.stdin.readline().split())) def LLI(rows_number): return [LI() for _ in range(rows_number)] def main(): a, b, s = MI() if s == 1: ans = abs(a - 1) + 1 elif abs(a - s) <= abs(b - s): ans = abs(a - s) + s else: # 1階でAに乗り換える ans = abs(b - s) + s + abs(a - 1) # Aのいる階でAに乗り換える if a > 0: ans = min(ans, abs(b - s) + abs(s - a) + a) print(ans) main()