#line 1 "template/template.hpp" #include #if __has_include() #include #endif using namespace std; using int64 = long long; const int64 infll = (1LL << 62) - 1; const int inf = (1 << 30) - 1; struct IoSetup { IoSetup() { cin.tie(nullptr); ios::sync_with_stdio(false); cout << fixed << setprecision(10); cerr << fixed << setprecision(10); } } iosetup; template ostream& operator<<(ostream& os, const pair& p) { os << p.first << " " << p.second; return os; } template istream& operator>>(istream& is, pair& p) { is >> p.first >> p.second; return is; } template ostream& operator<<(ostream& os, const vector& v) { for (size_t i = 0; i < v.size(); i++) { os << v[i] << (i + 1 != v.size() ? " " : ""); } return os; } template istream& operator>>(istream& is, vector& v) { for (T& in : v) is >> in; return is; } template bool chmax(T1& a, T2 b) { return a < b && (a = b, true); } template bool chmin(T1& a, T2 b) { return a > b && (a = b, true); } template vector make_v(size_t a) { return vector(a); } template auto make_v(size_t a, Ts... ts) { return vector(ts...))>(a, make_v(ts...)); } template enable_if_t == 0> fill_v(T& t, const V& v) { t = v; } template enable_if_t != 0> fill_v(T& t, const V& v) { for (auto& e : t) fill_v(e, v); } template struct FixPoint : F { explicit FixPoint(F&& f) : F(std::forward(f)) {} template decltype(auto) operator()(Args&&... args) const { return F::operator()(*this, std::forward(args)...); } }; template decltype(auto) MFP(F&& f) { return FixPoint{std::forward(f)}; } int main() { vector< pair< int, int > > ps(3); cin >> ps; auto dist = [](int x, int y, int a, int b) { return abs(x - 4 * a) + abs(y - 4 * b); }; auto check = [&](int x, int y) { auto a = dist(x, y, ps[0].first, ps[0].second); auto b = dist(x, y, ps[1].first, ps[1].second); auto c = dist(x, y, ps[2].first, ps[2].second); return a == b and b == c; }; vector< pair< int, int > > qs; for (int x = -8; x <= 408; x++) { for (int y = -8; y <= 408; y++) { if (check(x, y)) { for (int i = -1; i <= 1; i++) { for (int j = -1; j <= 1; j++) { if (i == 0 and j == 0) continue; if (check(x + i, y + j)) { cout << -1 << endl; return 0; } } } qs.emplace_back(x, y); } } } cout << qs.size() << endl; for (auto& [x, y]: qs) { cout << x / 4.0 << " " << y / 4.0 << endl; } }