import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class main {
	static float d;
	static int n,n1,n2;
	static boolean v[][];
	public static void main(String[] args) throws FileNotFoundException {
		Scanner in = new Scanner(new File("input.txt"));
		PrintWriter out = new PrintWriter(new File("output.txt"));
		n = in.nextInt();
		n1 = in.nextInt()-1;
		n2 = in.nextInt()-1;
		d = in.nextFloat()+in.nextFloat();
		v = new boolean[n][];
		int x[] = new int[n];
		int y[] = new int[n];
		for (int i=0;i<n;i++) v[i] = new boolean[n];
		for (int i=0;i<n;i++) {
			x[i] = in.nextInt();
			y[i] = in.nextInt();
			for (int j=0;j<i;j++) {
				if ((float)((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]))<=d*d) 
					v[i][j] = v[j][i] = true;
			}
		}
		boolean end = false;
		int w[] = new int[n];
		int b[] = new int[n];
		for (int i=0;i<n;i++) {
			w[i] = Integer.MAX_VALUE;
			b[i] = 0;
		}
		w[n1] = 0;
		b[n1] = 1;
		do {
			int i=0;
			while (i<n&&b[i]!=1) i++;
			if (i==n) end = true; else {
				for (int j=0;j<n;j++){
					if (v[i][j]&&w[j]>w[i]+1) {
						w[j] = w[i]+1;
						b[j] = 1;
					}
				}
				b[i] = 2;
			}
		} while (!end);
		if (b[n2] == 2) out.println(w[n2]); else out.println("Impossible");
		in.close();
		out.flush();
		out.close();
	}
}
