//
//  main.cpp
//  A_-_Malfatti_Circles
//
//  Created by Andy on 7/5/18.
//  Copyright © 2018 Andy. All rights reserved.
//

#include <iostream>
#include <cmath>
#include <stdio.h>


double Ax, Ay, Bx, By, Cx, Cy;
double a, b, c, p, s, r;
double Ix, Iy;
double IA, IB, IC;
double r1, r2, r3;


int main(int argc, const char * argv[]) {

    while (true) {
        scanf("%lf %lf %lf %lf %lf %lf", &Ax, &Ay, &Bx, &By, &Cx, &Cy);
        if (Ax == Bx && Bx == Cx && Ax == Ay && Ay == By && By == Cy && Cy == 0) break;
        
        a = std::sqrt(pow(Bx - Cx, 2) + pow(By - Cy, 2));
        b = std::sqrt(pow(Cx - Ax, 2) + pow(Cy - Ay, 2));
        c = std::sqrt(pow(Ax - Bx, 2) + pow(Ay - By, 2));
        p = a + b + c;
        s = p / 2;
        
//        std::cout << "B: (" << Bx << "," << By << ")\n";
//        std::cout << "C: (" << Cx << "," << Cy << ")\n";
//        std::cout << "BC: " << std::sqrt(pow(Bx-Cx, 2) + pow(By-Cy, 2)) << "\n";
//        std::cout << a << " " << b << " " << c << " " << perimeter << " " << semiperimeter << "\n";
        
        Ix = ((a * Ax) + (b * Bx) + (c * Cx)) / p;
        Iy = ((a * Ay) + (b * By) + (c * Cy)) / p;

//        std::cout << "I: (" << Ix << "," << Iy << ")\n";
        
        r = (std::sqrt(s * (s - c) * (s - a) * (s - b))) / s;
        
        IA = std::sqrt(pow(Ax - Ix, 2) + pow(Ay - Iy, 2));
        IB = std::sqrt(pow(Bx - Ix, 2) + pow(By - Iy, 2));
        IC = std::sqrt(pow(Cx - Ix, 2) + pow(Cy - Iy, 2));

        r1 = (r / (2 * (s - a))) * (s - r - IB - IC + IA);
        r2 = (r / (2 * (s - b))) * (s - r - IC - IA + IB);
        r3 = (r / (2 * (s - c))) * (s - r - IA - IB + IC);

        
        printf("%.6lf %.6lf %.6lf\n", r1, r2, r3);
        
        
    }

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
    
    return 0;
}


















































