#include <cstdio>
#include <iostream>
#include <string.h>
#include <vector>
#include <cmath>
#include <set>
#include <map>
#include <algorithm>
#define inf 999999999
using namespace std;
struct s
{
	double x;
	double y;
};
double ras[1001][1001]={{0}};
int r[1001]={0};
bool u[1001]={0};
int main()
{
	freopen("input.txt","r",stdin);
	freopen("output.txt","w",stdout);
	int i, j, n, t1, t2;
	double m1, m2, mm;
	s p[1001]={0};
	cin >> n >> t1 >> t2 >> m1 >> m2;
	for(i=1; i<=n; i++)
		cin >> p[i].x >> p[i].y;
	for(i=1; i<=n; i++)
		for(j=i+1; j<=n; j++)
		{
			ras[i][j] = sqrt((p[i].x-p[j].x)*(p[i].x-p[j].x)+(p[i].y-p[j].y)*(p[i].y-p[j].y));
			if(ras[i][j]>m1+m2)
				ras[i][j] = 0;
			ras[j][i] = ras[i][j];
		}
	for(i=1; i<=n; i++)
		r[i] = inf;
	r[t1] = 0;
	for(i=1; i<=n; i++)
	{
		u[t1] = 1;
		for(j=1; j<=n; j++)
			if(u[j]==0 && ras[t1][j]!=0 && r[j] > r[t1] + 1)
				r[j] = r[t1] + 1;
		mm = inf;
		for(j=1; j<=n; j++)
			if(u[j]==0 && r[j]<mm)
			{
				mm = r[j];
				t1 = j;
			}
	}
	if(r[t2]<inf)
		printf("%d", r[t2]);
	else printf("Impossible");
	return 0;
}