#include <bits/stdc++.h>
using namespace std;
set<pair<int, int>> wayx(int x1, int y1, int x2, int y2) {
  set<pair<int, int>> s;
  s.emplace(x1, y1);
  s.emplace(x2, y2);
  int delta = x1 < x2 ? 1 : -1;
  while (x1 != x2) {
    s.emplace(x1, y1);
    x1 += delta;
  }
  delta = y1 < y2 ? 1 : -1;
  while (y1 != y2) {
    s.emplace(x1, y1);
    y1 += delta;
  }
  return s;
}
set<pair<int, int>> wayy(int x1, int y1, int x2, int y2) {
  set<pair<int, int>> s;
  s.emplace(x1, y1);
  s.emplace(x2, y2);
  int delta = y1 < y2 ? 1 : -1;
  while (y1 != y2) {
    s.emplace(x1, y1);
    y1 += delta;
  }
  delta = x1 < x2 ? 1 : -1;
  while (x1 != x2) {
    s.emplace(x1, y1);
    x1 += delta;
  }
  return s;
}
set<pair<int, int>> solve1xx(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayx(x1, y1, x2, y2);
  auto b = wayx(x2, y2, x3, y3);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve2xx(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayx(x1, y1, x2, y2);
  auto b = wayx(x1, y1, x3, y3);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve3xx(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayx(x1, y1, x3, y3);
  auto b = wayx(x3, y3, x2, y2);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve1xy(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayx(x1, y1, x2, y2);
  auto b = wayy(x2, y2, x3, y3);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve2xy(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayx(x1, y1, x2, y2);
  auto b = wayy(x1, y1, x3, y3);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve3xy(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayx(x1, y1, x3, y3);
  auto b = wayy(x3, y3, x2, y2);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve1yx(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayy(x1, y1, x2, y2);
  auto b = wayx(x2, y2, x3, y3);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve2yx(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayy(x1, y1, x2, y2);
  auto b = wayx(x1, y1, x3, y3);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve3yx(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayy(x1, y1, x3, y3);
  auto b = wayx(x3, y3, x2, y2);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve1yy(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayy(x1, y1, x2, y2);
  auto b = wayy(x2, y2, x3, y3);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve2yy(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayy(x1, y1, x2, y2);
  auto b = wayy(x1, y1, x3, y3);
  a.insert(b.begin(), b.end());
  return a;
}
set<pair<int, int>> solve3yy(int x1, int y1, int x2, int y2, int x3, int y3) {
  auto a = wayy(x1, y1, x3, y3);
  auto b = wayy(x3, y3, x2, y2);
  a.insert(b.begin(), b.end());
  return a;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int x1, y1, x2, y2, x3, y3;
  cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
  vector<set<pair<int, int>>> v;
  v.emplace_back(solve1xx(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve2xx(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve3xx(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve1xy(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve2xy(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve3xy(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve1yx(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve2yx(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve3yx(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve1yy(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve2yy(x1, y1, x2, y2, x3, y3));
  v.emplace_back(solve3yy(x1, y1, x2, y2, x3, y3));
  sort(v.begin(), v.end(),
       [&](const set<pair<int, int>> &a, const set<pair<int, int>> &b) {
         return a.size() < b.size();
       });
  cout << v[0].size() << '\n';
  for (auto i : v[0]) {
    cout << i.first << ' ' << i.second << '\n';
  }
  return 0;
}
