#include <bits/stdc++.h>
using namespace std;
int best = 1007483647;
pair<int, int> arr[3], ans;
bool occ[1055][1055];
int dist(pair<int, int> u, pair<int, int> v) {
  return abs(u.first - v.first) + abs(u.second - v.second);
}
void solve(pair<int, int> u, pair<int, int> v) {
  occ[u.first][u.second] = occ[v.first][v.second] = true;
  if (u.first < v.first)
    for (int i = u.first; i <= v.first; i++) occ[i][u.second] = true;
  else
    for (int i = v.first; i <= u.first; i++) occ[i][u.second] = true;
  if (u.second < v.second)
    for (int i = u.second; i <= v.second; i++) occ[v.first][i] = true;
  else
    for (int i = v.second; i <= u.second; i++) occ[v.first][i] = true;
}
int main() {
  for (int i = 0; i < 3; i++) {
    scanf("%d%d", &arr[i].first, &arr[i].second);
  }
  for (int i = 0; i <= 1000; i++)
    for (int j = 0; j <= 1000; j++) {
      int tot =
          dist({i, j}, arr[0]) + dist({i, j}, arr[1]) + dist({i, j}, arr[2]);
      if (tot < best) {
        best = tot;
        ans = {i, j};
      }
    }
  for (int i = 0; i < 3; i++) solve(ans, arr[i]);
  int cnt = 0;
  for (int i = 0; i <= 1000; i++)
    for (int j = 0; j <= 1000; j++) cnt += occ[i][j];
  printf("%d\n", cnt);
  for (int i = 0; i <= 1000; i++)
    for (int j = 0; j <= 1000; j++)
      if (occ[i][j]) printf("%d %d\n", i, j);
  return 0;
}
