#include<bits/stdc++.h>

using namespace std;

int main()
{
    double x1, y1, x2, y2, x3, y3;
    while(scanf("%lf %lf", &x1, &y1)==2)
    {
        if(x1==0.0 && y1==0.0) break;
        scanf("%lf %lf %lf %lf", &x2, &y2, &x3, &y3);
        double dis = (x1-x2)*(y2-y3) - (x2-x3)*(y1-y2);
        cout<<dis<<endl;
        if(dis==0.0)
        {
            printf("Impossible\n");
            continue;
        }
        double A, B, H, K, calc1, calc2, X1, Y1, X2, Y2;
        A = fabs((x1*x1) + (y1*y1) - (x2*x2) - (y2*y2));
        B = fabs((x2*x2) + (y2*y2) - (x3*x3) - (y3*y3));
        X1 = fabs(x1-x2);
        Y1 = fabs(y1-y2);
        X2 = fabs(x2-x3);
        Y2 = fabs(y2-y3);
        H = (A*Y2) - (B*Y1);
        calc1 = 2.0 * ((X1*Y2)-(X2*Y1));
        H = H/(calc1);
        K = (B - (2.0*H*X2))/Y2;
        K = K/2.0;
        cout<<H<<' '<<K<<endl;
        double disone, distwo, disthree;
        disone = sqrt((x1-H)*(x1-H) + (y1-K)*(y1-K));
        distwo = sqrt((x2-H)*(x2-H) + (y2-K)*(y2-K));
        disthree = sqrt((x3-H)*(x3-H) + (y3-K)*(y3-K));
        cout<<disone<<' '<<distwo<<' '<<disthree<<endl;
        if(disone==distwo && distwo==disthree)
        {
            cout<<H<<' '<<K<<endl;
        }
        else
            printf("Impossible\n");

    }
    return 0;
}
