#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int xa, ya, xb, yb, xc, yc;
  cin >> xa >> ya >> xb >> yb >> xc >> yc;
  int x, y;
  if (xa > xb) {
    if (xb > xc) {
      x = xb;
    } else {
      if (xa > xc) {
        x = xc;
      } else {
        x = xa;
      }
    }
  } else {
    if (xa > xc) {
      x = xa;
    } else {
      if (xb > xc) {
        x = xc;
      } else {
        x = xb;
      }
    }
  }
  if (ya > yb) {
    if (yb > yc) {
      y = yb;
    } else {
      if (ya > yc) {
        y = yc;
      } else {
        y = ya;
      }
    }
  } else {
    if (ya > yc) {
      y = ya;
    } else {
      if (yb > yc) {
        y = yc;
      } else {
        y = yb;
      }
    }
  }
  int res = 3;
  bool a[1001][1001] = {false};
  a[xa][ya] = true;
  a[xb][yb] = true;
  a[xc][yc] = true;
  for (int i = min(xa, x); i <= max(x, xa); i++) {
    if (!a[i][ya]) {
      res++;
      a[i][ya] = true;
    }
  }
  for (int i = min(ya, y); i <= max(y, ya); i++) {
    if (!a[x][i]) {
      res++;
      a[x][i] = true;
    }
  }
  for (int i = min(xb, x); i <= max(x, xb); i++) {
    if (!a[i][yb]) {
      res++;
      a[i][yb] = true;
    }
  }
  for (int i = min(yb, y); i <= max(y, yb); i++) {
    if (!a[x][i]) {
      res++;
      a[x][i] = true;
    }
  }
  for (int i = min(xc, x); i <= max(x, xc); i++) {
    if (!a[i][yc]) {
      res++;
      a[i][yc] = true;
    }
  }
  for (int i = min(yc, y); i <= max(y, yc); i++) {
    if (!a[x][i]) {
      res++;
      a[x][i] = true;
    }
  }
  vector<pair<int, int>> v;
  for (int i = 0; i <= 1000; i++) {
    for (int j = 0; j <= 1000; j++) {
      if (a[i][j]) v.emplace_back(i, j);
    }
  }
  cout << res << '\n';
  for (int i = 0; i < v.size(); i++) {
    cout << v[i].first << " " << v[i].second << '\n';
  }
}
