#include #include #include using namespace std ; typedef long long LL ; #define clr( a , x ) memset ( a , x , sizeof a ) #define cpy( a , x ) memcpy ( a , x , sizeof a ) int n , s , t ; void solve () { if ( n > 1 && s == t ) { printf ( "-1\n" ) ; return ; } if ( s == 1 && t == n || s == n && t == 1 ) printf ( "0\n" ) ; else if ( s == 1 || s == n ) printf ( "1\n" ) ; else if ( t == 1 ) { if ( s == 2 ) printf ( "1\n" ) ; else printf ( "2\n" ) ; } else if ( t == n ) { if ( s == n - 1 ) printf ( "1\n" ) ; else printf ( "2\n" ) ; }else { if ( min ( s , t ) + 1 == max ( s , t ) ) printf ( "1\n" ) ; else printf ( "2\n" ) ; } } int main () { while ( ~scanf ( "%d%d%d" , &n , &s , &t ) ) solve () ; return 0 ; }