#include using namespace std; //#define int long long typedef vector vi; typedef vector vvi; const int INF = 1e9; signed main() { ios_base::sync_with_stdio(0); int n, m, f, t, s; cin >> n >> m >> f >> t >> s; vvi g1(2*n); vvi g2(2*n); for (int i=0; i < m; ++i) { int u, v; cin >> u >> v; g1[2*u].push_back(2*v+1); g1[2*u+1].push_back(2*v); g1[2*v].push_back(2*u+1); g1[2*v+1].push_back(2*u); } g2 = vvi(g1); for (int i=0; i < n; ++i) { g2[2*i].push_back(2*i+1); g2[2*i+1].push_back(2*i); } queue q; vi dist(2*n, INF); dist[2*t] = 0; q.push(2*t); while (!q.empty()) { int u = q.front(); q.pop(); for (int v : g1[u]) { if (dist[v] == INF) { dist[v] = dist[u]+1; q.push(v); } } } vi dist2(2*n, INF); dist2[2*s] = 0; q.push(2*s); while (!q.empty()) { int u = q.front(); q.pop(); for (int v : g2[u]) { if (dist2[v] == INF && dist[v] > dist2[u]+1) { dist2[v] = dist2[u]+1; q.push(v); } } } int ans = min(dist2[2*f], dist2[2*f+1]); if (ans == INF) { cout << "death" << endl; } else { cout << ans << endl; } }