#include <bits/stdc++.h>
const int MAXN = 1000;
std::pair<int, int> a[MAXN];
int main() {
  for (int i = 1; i <= 3; ++i) scanf("%d%d", &a[i].first, &a[i].second);
  std::sort(a + 1, a + 3 + 1);
  int mx = a[1].second, mn = a[1].second, sm = a[1].second;
  for (int i = 2; i <= 3; ++i)
    mx = std::max(mx, a[i].second), mn = std::min(mn, a[i].second),
    sm += a[i].second;
  int y = sm - mx - mn;
  std::vector<std::pair<int, int> > ans;
  for (int i = a[1].first; i <= a[3].first; ++i)
    ans.push_back(std::make_pair(i, y));
  for (int i = 1; i <= 3; ++i) {
    if (a[i].second == y) continue;
    if (a[i].second > y) {
      for (int j = y + 1; j <= a[i].second; ++j)
        ans.push_back(std::make_pair(a[i].first, j));
    } else {
      for (int j = a[i].second; j <= y - 1; ++j)
        ans.push_back(std::make_pair(a[i].first, j));
    }
  }
  std::sort(ans.begin(), ans.end());
  ans.erase(std::unique(ans.begin(), ans.end()), ans.end());
  printf("%d\n", (int)ans.size());
  for (auto x : ans) printf("%d %d\n", x.first, x.second);
  return 0;
}
