#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 1;
struct pto {
  int x, y;
  pto(int _x = 0, int _y = 0) : x(_x), y(_y) {}
  bool operator<(const pto &p) const {
    return make_pair(x, y) < make_pair(p.x, p.y);
  }
  bool operator!=(const pto &p) const {
    return make_pair(x, y) != make_pair(p.x, p.y);
  }
};
bool seen[N][N];
vector<pto> colored;
int sign(int x) { return (x > 0) - (x < 0); }
void add(pto p) {
  if (seen[p.x][p.y]) return;
  seen[p.x][p.y] = true;
  colored.emplace_back(p);
}
void movex(pto &a, pto b) {
  while (a.x != b.x) add(a), a.x += sign(b.x - a.x);
}
void movey(pto &a, pto b) {
  while (a.y != b.y) add(a), a.y += sign(b.y - a.y);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  pto p[3];
  for (int i = int(0); i < int(3); i++) cin >> p[i].x >> p[i].y;
  sort(p, p + 3);
  movex(p[0], p[1]);
  movey(p[0], p[1]);
  colored.emplace_back(p[1]);
  movex(p[2], p[1]);
  movey(p[2], p[1]);
  cout << int((colored).size()) << '\n';
  for (pto c : colored) cout << c.x << ' ' << c.y << '\n';
  return 0;
}
