/*
s与t的位置就两种, s t 或 t s
就四种情况 0 1 2 -1,
自己去考虑下,说不清
s与t的位置就两种, s t 或 t s
就四种情况 0 1 2 -1,
自己去考虑下,说不清
*/
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
int n,s,t;
while (~scanf ("%d%d%d",&n,&s,&t))
{
if (n>1 && s==t)//有点坑
{
printf("-1\n");continue;
}
if (s==1 && t==n || s==n && t==1)//各自在起始位置
{
printf("0\n"); continue;
}
if (n==1 || n==2)//这个不用说
{
printf("0\n"); continue;
}
if ((s-t)==-1 || (s-t)==1)//s与t相邻
{
printf("1\n");continue;
}
if (s==1 || s==n)//s在两端
{
printf("1\n");continue;
}
printf("2\n");
}
return 0;
}