#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; static const double EPS = 1e-8; static const double PI = 4.0 * atan(1.0); static const double PI2 = 8.0 * atan(1.0); #define REP(i,n) for(int i=0;i<(int)n;++i) #define ALL(c) (c).begin(),(c).end() #define CLEAR(v) memset(v,0,sizeof(v)) #define MP(a,b) make_pair((a),(b)) #define ABS(a) ((a)>0?(a):-(a)) #define FOR(i,s,n) for(int i=s;i<(int)n;++i) struct vec { int x, y; vec() : x(0), y(0) {} vec(int x, int y) : x(x), y(y) {} }; vec operator+(const vec &l, const vec &r) { return vec(l.x + r.x, l.y + r.y); } vec operator-(const vec &l, const vec &r) { return vec(l.x - r.x, l.y - r.y); } int dot(const vec &a, const vec &b) { return a.x * b.x + a.y * b.y; } int sqnorm(const vec &a) { return a.x * a.x + a.y * a.y; } void solve(vec a, vec b, vec c) { vec d = b + c - a; if (sqnorm(b - a) != sqnorm(c - a)) { cout << -1 << endl; } else { cout << d.x << " " << d.y << endl; } } int main(int argc, char **argv) { vec a, b, c; cin >> a.x >> a.y >> b.x >> b.y >> c.x >> c.y; if (dot(b - a, c - a) == 0) solve(a, b, c); else if (dot(a - b, c - b) == 0) solve(b, a, c); else if (dot(a - c, b - c) == 0) solve(c, a, b); else cout << -1 << endl; return 0; }