#include <bits/stdc++.h>
using namespace std;
const int INF = 2147483647;
set<pair<int, int> > s, sR;
int xa, ya, xb, yb, xc, yc;
void go2(int xx1, int yy1, int xx2, int yy2) {
  s.insert(pair<int, int>(xx1, yy1));
  if (xx1 == xx2 && yy1 == yy2)
    return;
  else if (xx2 > xx1)
    go2(xx1 + 1, yy1, xx2, yy2);
  else if (xx2 < xx1)
    go2(xx1 - 1, yy1, xx2, yy2);
  else if (yy2 > yy1)
    go2(xx1, yy1 + 1, xx2, yy2);
  else if (yy2 < yy1)
    go2(xx1, yy1 - 1, xx2, yy2);
}
void go(int xx1, int yy1, int xx2, int yy2, int xx3, int yy3) {
  s.insert(pair<int, int>(xx1, yy1));
  if (xx1 == xx2 && yy1 == yy2) {
    go2(xx1, yy1, xx3, yy3);
  } else if (xx1 == xx3 && yy1 == yy3) {
    go2(xx1, yy1, xx2, yy2);
  } else if (xx2 > xx1 && xx3 > xx1) {
    go(xx1 + 1, yy1, xx2, yy2, xx3, yy3);
  } else if (xx2 < xx1 && xx3 < xx1) {
    go(xx1 - 1, yy1, xx2, yy2, xx3, yy3);
  } else if (yy2 > yy1 && yy3 > yy1) {
    go(xx1, yy1 + 1, xx2, yy2, xx3, yy3);
  } else if (yy2 < yy1 && yy3 < yy1) {
    go(xx1, yy1 - 1, xx2, yy2, xx3, yy3);
  } else {
    go2(xx1, yy1, xx2, yy2);
    go2(xx1, yy1, xx3, yy3);
  }
}
int main() {
  scanf("%d %d %d %d %d %d", &xa, &ya, &xb, &yb, &xc, &yc);
  s.clear();
  go(xa, ya, xb, yb, xc, yc);
  sR.clear();
  for (auto &w : s) sR.insert(w);
  s.clear();
  go(xb, yb, xa, ya, xc, yc);
  if (s.size() < sR.size()) {
    sR.clear();
    for (auto &w : s) sR.insert(w);
  }
  s.clear();
  go(xc, yc, xa, ya, xb, yb);
  if (s.size() < sR.size()) {
    sR.clear();
    for (auto &w : s) sR.insert(w);
  }
  printf("%d\n", sR.size());
  for (auto &w : sR) printf("%d %d\n", w.first, w.second);
  return 0;
}
