#include <iostream>
#include <cmath>

typedef std::pair<double,double> Point;
#define x first
#define y second


double dist(Point a, Point b){
	double x = a.x - b.x;
	double y = a.y - b.y;

	return sqrt(x*x+y*y);
}


int main(){

	Point A;
	Point B;
	Point C;

	std::cin >> A.x >> A.y >> B.x >> B.y >> C.x >> C.y;

	while(A.x != 0 || A.y != 0 || B.x != 0 || B.y != 0 
			|| C.x != 0 || C.y != 0){

		double AB = dist(A,B);
		double AC = dist(A,C);
		double BC = dist(B,C);

		//random forumual stuff that i dont really get here
		double s = (AB + AC + BC)/2;
		Point I;//centre of triangle 
		I.x = (BC * A.x + AC * B.x + AB * C.x)/(AB+AC+BC);
		I.y = (BC * A.y + AC * B.y + AB * C.y)/(AB+AC+BC); 
		double r = sqrt((s-AB)*(s-AC)*(s-BC)/s);

		double IA = dist(I,A);
		double IB = dist(I,B);
		double IC = dist(I,C);

		double r1 = (r/(2*(s-BC)))*(s-r + IA-IC-IB);
		double r2 = (r/(2*(s-AC)))*(s-r + IB-IC-IA);
		double r3 = (r/(2*(s-AB)))*(s-r + IC-IB-IA);

		std::cout << r1 << " " << r2 << " " << r3 << "\n";

		std::cin >> A.x >> A.y >> B.x >> B.y >> C.x >> C.y;
	}


	return 0;
}

