#include<iostream>
using namespace std;
const int INF=0x3f3f3f3f;
int x1,x2,y1,y2;
int x3,x4,y3,y4;
double k1,k2,x,y,p1,p2;
int main()
{
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
scanf("%d%d%d%d",&x3,&y3,&x4,&y4);
// y=(y2-y1)/(x2-x1) *(x-x1)+y1
// y=(y4-y3)/(x4-x3)*(x-x3)+y3
if(x1==x2) k1=INF;
else k1 = (y2-y1) * 1.0/(x2-x1);
if(x3==x4) k2=INF;
else k2 =(y4-y3) * 1.0/(x4-x3);
if(k2==k1) printf("Parallel or coincident");
else{
if(k1!=INF&&k2!=INF){
p1= y1-k1*x1,p2=y3-k2*x3;
x=(p2-p1)/(k1-k2);
y=k1*(x-x1)+y1;
printf("%.2f %.2f",x,y);
}
else if(k1==INF && k2!=INF)
{
x=x1;
y=k2 *(x-x3)+y3;
printf("%.2f %.2f",x,y);
}
else if(k2==INF&&k1!=INF)
{
x=x3;
y=k1*(x-x1)+y1;
printf("%.2f %.2f",x,y);
}
}
return 0;
}