#include #include #define chmin(x,y) (x) = min((x),(y)) #define chmax(x,y) (x) = max((x),(y)) #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define vec vector #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define pb push_back #define eb emplace_back using namespace std; using namespace atcoder; using ll = long long; using ld = long double; const ll mod = 998244353; using mint = modint998244353; const vector dx = {1,0,-1,0}, dy = {0,1,0,-1}; // using Graph = vector>>; using Graph = vector>; int manh(int x1, int y1, int x2, int y2){ return abs(x1-x2) + abs(y1-y2); } int main(){ // input vec X(3), Y(3); rep(i,3){ cin >> X[i] >> Y[i]; X[i] *= 4; Y[i] *= 4; } int L = -500 , R = 1000; // solve bool infinite = 0; vec> ans; for(int x = L; x <= R; x++){ for(int y = L; y <= R; y++){ set st; rep(i,3) st.insert(manh(X[i],Y[i],x,y)); if(st.size() == 1){ ans.eb((double)x / 4.0,(double)y / 4.0); if(abs(x % 2) == 1 || abs(y % 2) == 1){ infinite = 1; break; } } } if(infinite) break; } // output if(infinite) cout << -1 << endl; else{ cout << ans.size() << "\n"; for(auto[x,y] : ans) cout << x << " " << y << endl; } }