#include <math.h>
#define SQ2 (0.70710678118654752440084436210485)
#define PI (3.141592653589793238462643383279502)

/*
  a|dx|+b|dy|として、sqrt(dx^2+dy^2)との誤差が最小のものを探す
*/
#if 0
#define STEP (10000000) /*値分割数 1.0を何分割して値をチェックするか(1以上の整数)*/
#define STEPD (5)       /*角度のステップ (1〜450の整数、1で1/10度づつ*/
#define STARTA (.960)   /*aチェック開始値*/
#define ENDA (.962)     /*aチェック終了値*/
#define STARTB (.3978)  /*bチェック開始値*/
#define ENDB (.3980)    /*bチェック終了値*/
#else
#define STEP (10000)
#define STEPD (5)
#define STARTA (0)
#define ENDA (1)
#define STARTB (0)
#define ENDB (1)
#endif

int main()
{
	double sint[451],cost[451];
	int i,ct=0;
	double mi,a,b,x1,x2,mx,my,min;
	for(i=0;i<=450;i++){
		sint[i]=sin(i*PI*2/360/10);
		cost[i]=cos(i*PI*2/360/10);
	}
	mi=999999999999999;

	for(a=1.0/STEP+STARTA;a<ENDA;a+=1.0/STEP){
		for(b=1.0/STEP+STARTB;b<ENDB;b+=1.0/STEP){
			x1=0;
			for(i=0;i<=450;i+=STEPD){

				if(x1<fabs(a*cost[i]+b*sint[i]-1))
					x1=fabs(a*cost[i]+b*sint[i]-1);
			}
			if(mi>x1){
				mi=x1;
			    mx=a;
				my=b;
			}
		}
		ct++;
		putchar('*');
		if((ct&127)==0)
			printf("%f ",a);
	}
	printf("%f %f %f\n",mx,my,mi);
	return 0;
}
