#include <bits/stdc++.h>
using namespace std;
int main() {
  int a, b;
  vector<pair<int, int> > v, re;
  scanf("%d %d ", &a, &b);
  v.push_back(make_pair(a, b));
  scanf("%d %d ", &a, &b);
  v.push_back(make_pair(a, b));
  scanf("%d %d ", &a, &b);
  v.push_back(make_pair(a, b));
  sort(v.begin(), v.end());
  pair<int, int> A = v[0], B = v[1], C = v[2];
  int x = A.first, y = A.second;
  re.push_back(make_pair(x, y));
  if (C.second > A.second) {
    int dy = max(min(B.second, C.second), A.second);
    for (int i = A.second + 1; i <= dy; i++) {
      re.push_back(make_pair(x, i));
    }
    y = dy;
    for (int i = A.first + 1; i <= C.first; i++) {
      re.push_back(make_pair(i, y));
    }
    x = C.first;
    for (int i = y + 1; i <= C.second; i++) {
      re.push_back(make_pair(x, i));
    }
  } else {
    int dy = min(max(B.second, C.second), A.second);
    for (int i = A.second - 1; i >= dy; i--) {
      re.push_back(make_pair(x, i));
    }
    y = dy;
    for (int i = A.first + 1; i <= C.first; i++) {
      re.push_back(make_pair(i, y));
    }
    x = C.first;
    for (int i = y - 1; i >= C.second; i--) {
      re.push_back(make_pair(x, i));
    }
  }
  if (B.second > y) {
    for (int i = y + 1; i <= B.second; i++) {
      re.push_back(make_pair(B.first, i));
    }
  } else {
    for (int i = y - 1; i >= B.second; i--) {
      re.push_back(make_pair(B.first, i));
    }
  }
  printf("%d\n", re.size());
  for (int i = 0; i < re.size(); i++) {
    printf("%d %d\n", re[i].first, re[i].second);
  }
}
