class Point:
    def __init__(self, x=0.0, y=0.0):
        self.x = x
        self.y = y

class Line:
    def __init__(self, point_a=None, point_b=None):
        self.point_A = point_a if point_a is not None else Point()
        self.point_B = point_b if point_b is not None else Point()

def find_meeting_point(line_A, line_B):
    # TODO: 求直线 line_A 与 line_B 的交点
	#两条直线无斜率
    if line_A.point_A.x==line_A.point_B.x and line_B.point_A.x==line_B.point_B.x :
        return Point(-1,-1)
    elif line_A.point_A.y==line_A.point_B.y and line_B.point_A.y==line_B.point_B.y :
        return Point(-1,-1)
	#一条直线无斜率
    elif line_A.point_A.x==line_A.point_B.x:
        xieluB=(line_B.point_A.y-line_B.point_B.y)/(line_B.point_A.x-line_B.point_B.x)
        y=xieluB*(line_A.point_A.x-line_B.point_A.x)+line_A.point_A.y
        return Point(line_A.point_A.x,y)
    elif line_B.point_A.x==line_B.point_B.x:
        xieluA=(line_A.point_A.y-line_B.point_B.y)/(line_A.point_A.x-line_B.point_B.x)
        y=xieluA*(line_B.point_A.x-line_A.point_A.x)+line_B.point_A.y
        return Point(line_B.point_A.x,y)
	#都有斜率
    xielua=(line_A.point_A.y-line_A.point_B.y)/(line_A.point_A.x-line_A.point_B.x)
    xielub=(line_B.point_A.y-line_B.point_B.y)/(line_B.point_A.x-line_B.point_B.x)
    b1=line_A.point_A.y-xielua*line_A.point_A.x
    b2=line_B.point_A.y-xielub*line_B.point_A.x
    x=(b2-b1)/(xielua-xielub)
    y=xielua*x+b1
    return Point

def main():
    data = list(map(float, input().split()))
    data.extend(list(map(float, input().split())))
    A = Point(data[0], data[1])
    B = Point(data[2], data[3])
    C = Point(data[4], data[5])
    D = Point(data[6], data[7])
    AB = Line(A, B)
    CD = Line(C, D)
    ans = find_meeting_point(AB, CD)
    print(f"{ans.x} {ans.y}")

if __name__ == "__main__":
    main()