#include <stdio.h>
#include <cmath>
#include <vector>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
using namespace std;

int main(void) {
	vector<string> r;
	while (true)
	{
		double n=0;
		scanf("%lf",&n);
		if (n==0){
			break;
		}
		double px=0,py=0,vx=0,vy=0;
		scanf("%lf %lf %lf %lf", &px,&py,&vx,&vy);
		double d=0;
		if (abs(px) <= __FLT_EPSILON__)
		{
			if (vx == 0)
			{
				if (py*vy>0)
				{
					d = 2.0-abs(double(py));
				} else {
					d = abs(double(py));
				}
			} else {
				d=51;
			}
		} else {
			if (vx != 0)
			{
				if (abs(py/px - vy/vx) <= __FLT_EPSILON__)
				{
					if (px*vx>0)
					{
						d = 2.0-sqrt(px*px+py*py);
					} else {
						d = sqrt(px*px+py*py);
					}
				} else {
					d=51;
				}
			} else {
				d=51;
			}
		}
		if (n<d)
		{
			r.push_back("impossible");
		} else {
			ostringstream os;
			os << setprecision(14) << d;
			r.push_back(os.str());
		}
	}
	for(int i=0; i<r.size(); i++)
	{
		cout << r[i] << endl;
	}
	return 0;
}