/* _ooOoo_ o8888888o 88" . "88 (| 0_0 |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : |||// \ / _||||| -:- |||||- \ | | \\\ - /// | | | \_| ''\---/'' | | \ .-\__ `-` ___/-. / ___`. .' /--.--\ `. . __ ."" '< `.___\_<|>_/___.' >'"". | | : `- \`.;`\ _ /`;.`/ - ` : | | \ \ `-. \_ __\ /__ _/ .-` / / ======`-.____`-.___\_____/___.-`____.-'====== `=---=' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 佛祖保佑 ^-^ 永无BUG */ #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define M 10005 void Rd(int &res){ char c;res=0;int k=1; while(c=getchar(),!isdigit(c)&&c!='-'); if(c=='-')c=getchar(),k=-1; do res=(res<<3)+(res<<1)+(c^48); while(c=getchar(),isdigit(c)); res=res*k; } bool mark[M]; int main(){ int i,j,k; int n,s,t; while(scanf("%d %d %d",&n,&s,&t)!=EOF){ if(n==1){ puts("0"); continue; } if(s==t){ puts("-1"); continue; } if(s==1){ if(t==n)puts("0"); else puts("1"); continue; } if(s==n){ if(t==1)puts("0"); else puts("1"); continue; } if(abs(t-s)==1){ puts("1"); continue; } else puts("2"); } return 0; }