#include <cstdio>
#include <iostream>
#include <cmath>
#include <deque>
using namespace std;
deque<int> Q;
bool F[10000];
int From[10000];
long long X[2000], Y[2000];
double R(int n1, int n2)
{
	return ((X[n1]-X[n2])*(X[n1]-X[n2]) +(Y[n1]-Y[n2])*(Y[n1]-Y[n2]));

}
int main()
{
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
	int N, n1, n2;
	double D, D1, D2;
	cin >> N >> n1 >> n2 >> D1 >> D2;
	D = (D1 + D2)*(D1 + D2);
	n1--; n2--;

	for (int i = 0; i < N; i++)
		cin >> X[i] >> Y[i];

	Q.push_back(n1);
	F[n1] = true;
	while (!Q.empty())
	{
		int p = Q[0];
		Q.pop_front();

		for (int i = 0; i < N; i++)
			if (!F[i] && R(p, i) < D+0.0000001)
			{
				Q.push_back(i);
				F[i] = true;
				From[i] = p;
			}
	}
	if (!F[n2])
	{
		cout << "Impossible" ;
		return 0;
	}

	int k = 0; 
	int p = n2;
	while (p != n1)
	{
		p = From[p];
		k++;
	}
	cout << k;


}