import sys

from pprint import pprint



def solve(n, a, b):

    ans = 0

    if (b - a) % 2 == 0:

        ans = (b - a) // 2

    else:

        # 両端で試合するパターン

        simple = min(b - 1, n - a)



        # 両端に一回残留してから端以外で試合するパターン

        mix_a = a + (b - a) // 2

        mix_b = n - b + 1 + (b - a - 1) // 2

        ans = min(simple, mix_a, mix_b)



    print(ans)



if __name__ == '__main__':

    n, a, b = list(map(int, sys.stdin.readline().strip().split(" ")))

    solve(n, a, b)
import sys



N, A, B = list(map(int, sys.stdin.readline().split()))

if (B - A) % 2 == 0:

    print(((B - A) // 2))

else:

    print((min(A + (B - A - 1) // 2, N - B + 1 + (B - A - 1) // 2)))
import sys
from pprint import pprint


def solve(n, a, b):
    ans = 0
    if (b - a) % 2 == 0:
        ans = (b - a) // 2
    else:
        # 両端で試合するパターン
        simple = min(b - 1, n - a)
        # 両端に一回残留してから端以外で試合するパターン
        mix_a = a + (b - a) // 2
        mix_b = n - b + 1 + (b - a - 1) // 2
        ans = min(simple, mix_a, mix_b)
    print(ans)


if __name__ == "__main__":
    n, a, b = list(map(int, sys.stdin.readline().strip().split(" ")))
    solve(n, a, b)

import sys

N, A, B = list(map(int, sys.stdin.readline().split()))
if (B - A) % 2 == 0:
    print(((B - A) // 2))
else:
    print((min(A + (B - A - 1) // 2, N - B + 1 + (B - A - 1) // 2)))

-from pprint import pprint - -def solve(n, a, b): -    ans = 0 -    if (b - a) % 2 == 0: -        ans = (b - a) // 2 -    else: -        # 両端で試合するパターン -        simple = min(b - 1, n - a) -        # 両端に一回残留してから端以外で試合するパターン -        mix_a = a + (b - a) // 2 -        mix_b = n - b + 1 + (b - a - 1) // 2 -        ans = min(simple, mix_a, mix_b) -    print(ans) - - -if __name__ == "__main__": -    n, a, b = list(map(int, sys.stdin.readline().strip().split(" "))) -    solve(n, a, b) +N, A, B = list(map(int, sys.stdin.readline().split())) +if (B - A) % 2 == 0: +    print(((B - A) // 2)) +else: +    print((min(A + (B - A - 1) // 2, N - B + 1 + (B - A - 1) // 2)))