#include #include #include #include #include #include #include #include #include // require sort next_permutation count __gcd reverse etc. #include // require abs exit atof atoi #include // require scanf printf #include #include // require accumulate #include // require fabs #include #include #include #include // require setw #include // require stringstream #include // require memset #include // require tolower, toupper #include // require freopen #include // require srand #include #define rep(i,n) for(int i=0;i<(n);i++) #define ALL(A) A.begin(), A.end() #define INF 1<<28 #define EPS 1e-8 // 2つのスカラーが等しいかどうか #define EQ(a,b) (abs(abs(a)-abs(b)) < EPS) using namespace std; typedef long long ll; typedef complex P; // 内積 (dot product) : a⋅b = |a||b|cosθ double dot(P a, P b) { return (a.real() * b.real() + a.imag() * b.imag()); } P is_square (P p_base, P p1, P p2 ){ p1 -= p_base; p2 -= p_base; if (EQ(p1, p2 ) && abs(dot(p1, p2 ) ) < EPS ){ P res = p1 + p2; res += p_base; return res; } // end if return P (INF, INF ); } int main() { ios_base::sync_with_stdio(0); P pos[3]; rep (i, 3 ){ int x, y; cin >> x >> y; pos[i] = P (x, y ); } // end rep P ans[3]; P res = P(INF, INF ); rep (i, 3 ){ ans[i] = is_square (pos[i%3], pos[(i+1)%3], pos[(i+2)%3] ); if (ans[i].real() != INF ){ res = ans[i]; break; } // end if } // end rep if (res.real() != INF ) cout << res.real() << ' ' << res.imag() << endl; else cout << -1 << endl; return 0; }