#include <bits/stdc++.h>
using namespace std;
set<pair<int, int>> s;
set<pair<int, int>> s1;
bool cmp(pair<int, int>& p1, pair<int, int>& p2) {
  if (p1.second == p2.second)
    return p1.first < p2.first;
  else
    return p1.second > p2.second;
}
void solve1(int x1, int y1, int x2, int y2) {
  if (y1 > y2) {
    while (y1 >= y2) {
      s.insert({x1, y1});
      y1--;
    }
    while (x1 <= x2) {
      s.insert({x1, y2});
      x1++;
    }
  } else {
    while (y1 <= y2) {
      s.insert({x1, y1});
      y1++;
    }
    while (x1 <= x2) {
      s.insert({x1, y2});
      x1++;
    }
  }
}
void solve2(int x1, int y1, int x2, int y2) {
  if (y1 > y2) {
    while (y1 >= y2) {
      s.insert({x1, y1});
      y1--;
    }
    while (x1 >= x2) {
      s.insert({x1, y2});
      x1--;
    }
  } else {
    while (y1 <= y2) {
      s.insert({x1, y1});
      y1++;
    }
    while (x1 >= x2) {
      s.insert({x1, y2});
      x1--;
    }
  }
}
int main() {
  pair<int, int> p[10];
  pair<int, int> p1[10];
  for (int i = 0; i < 3; i++) {
    int a, b;
    cin >> a >> b;
    p1[i].first = a;
    p1[i].second = b;
    p[i].first = a;
    p[i].second = b;
  }
  sort(p, p + 3);
  solve2(p[1].first, p[1].second, p[0].first, p[0].second);
  solve1(p[1].first, p[1].second, p[2].first, p[2].second);
  cout << s.size() << endl;
  for (auto it : s) cout << it.first << " " << it.second << endl;
}
