A,B,S = gets.split.map(&:to_i) if S == 1 || (A - S).abs <= (B - S).abs # Aが優先される場合 puts (A - S).abs + S elsif A <= 1 # Bが優先されるけど、1階で確実にAに乗り換える場合 puts (B - S).abs + (S - 1) + (A - 1).abs + 1 else # Bで移動後、Aに乗る場合 # 1. Bで1階に移動して、下を押す # 2. Aとおなじ階まで移動して、下を押す puts [ (B - S).abs + (S - 1) + (A - 1).abs + 1, (B - S).abs + (S - A).abs + A].min end