#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i)) #define rer(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i)) #define reu(i,l,u) for(int (i)=(int)(l);(i)<(int)(u);++(i)) #if defined(_MSC_VER) || __cplusplus > 199711L #define aut(r,v) auto r = (v) #else #define aut(r,v) typeof(v) r = (v) #endif #define each(it,o) for(aut(it, (o).begin()); it != (o).end(); ++ it) #define all(o) (o).begin(), (o).end() #define pb(x) push_back(x) #define mp(x,y) make_pair((x),(y)) #define mset(m,v) memset(m,v,sizeof(m)) #define INF 0x3f3f3f3f #define INFL 0x3f3f3f3f3f3f3f3fLL using namespace std; typedef vector vi; typedef pair pii; typedef vector > vpii; typedef long long ll; typedef vector vl; typedef pair pll; typedef vector > vpll; typedef vector vs; typedef long double ld; template inline void amin(T &x, U y) { if(y < x) x = y; } template inline void amax(T &x, U y) { if(x < y) x = y; } //菱型を求めてた… ll sq(int x) { return (ll)x*x; } int main() { pii ps[3]; rep(i, 3) cin >> ps[i].first >> ps[i].second; sort(ps, ps + 3); do { int dx1 = ps[1].first - ps[0].first; int dy1 = ps[1].second - ps[0].second; int dx2 = ps[2].first - ps[0].first; int dy2 = ps[2].second - ps[0].second; if(sq(dx1) + sq(dy1) != sq(dx2) + sq(dy2)) continue; if((ll)dx1 * dx2 + (ll)dy1 * dy2 != 0) continue; //直角! if(sq(dx1) + sq(dy1) == 0) continue; int x = ps[1].first + dx2, y = ps[1].second + dy2; if(sq(x - ps[2].first) + sq(y - ps[2].second) != sq(dx1) + sq(dy1)) continue; cout << x << " " << y << endl; return 0; }while(next_permutation(ps, ps + 3)); puts("-1"); return 0; }