#include using namespace std; const int INF=1e9; int main(){ cin.tie(0); ios::sync_with_stdio(false); int N,M,A,B; cin >> N >> M >> A >> B; --A,B; vector> G(N+1); for (int i=0;i> L >> R; --L; L=max(L,A); L=min(L,B); R=max(R,A); R=min(R,B); G[L].emplace_back(R); G[R].emplace_back(L); } queue que; vector dp(N+2,INF); dp[A]=0; que.emplace(A); while(!que.empty()){ int v=que.front(); que.pop(); for (int u:G[v]){ if (dp[v]+1