Problem: Write a program which prints the central coordinate ($cx$,$cy$) and the radius $r$ of a incircle of a triangle which is constructed by three points ($x_1$, $y_1$), ($x_2$, $y_2$) and ($x_3$, $y_3$) on the plane surface.

Constraints

* $-10000 \leq x_i, y_i \leq 10000$
* The three points are not on the same straight line

Input

The input is given in the following format


$x_1$ $y_1$
$x_2$ $y_2$
$x_3$ $y_3$


All the input are integers.

Output

Print $cx$, $cy$ and $r$ separated by a single space in a line. The output values should be in a decimal fraction with an error less than 0.000001.

Examples

Input

1 -2
3 2
-2 0


Output

0.53907943898209422325 -0.26437392711448356856 1.18845545916395465278


Input

0 3
4 0
0 0


Output

1.00000000000000000000 1.00000000000000000000 1.00000000000000000000

Solution (in CPP):

Solution:
#include <stdio.h>
#include <math.h>

struct POINT {
    double x;
    double y;
};

double Dist(const POINT &a, const POINT &b){
    return sqrt( (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y) );  
}

double Square(const POINT &a, const POINT &b, const POINT &c){    //3点を頂点に持つ"平行四辺形の"面積
    return fabs( (a.x - b.x) * (a.y - c.y) - (a.y - b.y) * (a.x - c.x) );
}


int main(){
    POINT zP[3];
    for (int i = 0; i < 3; i++){
        scanf("%lf %lf", &zP[i].x, &zP[i].y);
    }
    double xAns,yAns,rAns;
    xAns = ( Dist(zP[1], zP[2]) * zP[0].x + Dist(zP[2], zP[0]) * zP[1].x + Dist(zP[0], zP[1]) * zP[2].x )
           / ( Dist(zP[1], zP[2]) + Dist(zP[2], zP[0]) + Dist(zP[0], zP[1]) );
    yAns = ( Dist(zP[1], zP[2]) * zP[0].y + Dist(zP[2], zP[0]) * zP[1].y + Dist(zP[0], zP[1]) * zP[2].y )
           / ( Dist(zP[1], zP[2]) + Dist(zP[2], zP[0]) + Dist(zP[0], zP[1]) );
    rAns = Square(zP[1], zP[2], zP[0]) / ( Dist(zP[1], zP[2]) + Dist(zP[2], zP[0]) + Dist(zP[0], zP[1]) );
    printf("%lf %lf %lf", xAns, yAns, rAns);
    
    return 0;
}