#include <iostream>
using namespace std;
struct Point
{
long double x, y;
Point() = default;
Point(float X, float Y) : x(X), y(Y)
{
}
Point operator+ (const Point& other) const
{
return Point(x + other.x, y + other.y);
}
Point operator- (const Point& other) const
{
return Point(x - other.x, y - other.y);
}
bool operator== (const Point& other) const
{
return x == other.x && y == other.y;
}
bool operator< (const Point& other) const
{
return x == other.x || x < other.x && y < other.y;
}
};
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
struct Point a, b, c, d;
long double q, w, e, r, t, y, u, i;
while (cin >> q >> w >> e >> r >> t >> y >> u >> i)
{
Point answer;
a.x = q;
a.y = w;
b.x = e;
b.y = r;
c.x = t;
c.y = y;
d.x = u;
d.y = i;
if (a == c) answer = b + d - a;
else if (a == d) answer = c + b - a;
else if (b == c) answer = a + d - b;
else if (b == d) answer = a + c - b;
cout << fixed;
cout.precision(3);
cout << answer.x << " " << answer.y << "\n";
}
return 0;
}