#include <bits/stdc++.h>
using namespace std;
const int INF = (int)1e9 + 7;
int dist[5][1005][1005];
int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};
queue<pair<int, int> > qu;
pair<int, int> parent[5][1005][1005];
void bfs(pair<int, int> A, int typ) {
  qu.push(A);
  for (int i = 0; i <= 1000; i++)
    for (int j = 0; j <= 1000; j++) dist[typ][i][j] = INF;
  dist[typ][A.first][A.second] = 0;
  parent[typ][A.first][A.second] = make_pair(-1, -1);
  while (!qu.empty()) {
    pair<int, int> v = qu.front();
    qu.pop();
    for (int k = 0; k < 4; k++) {
      int nx = v.first + dx[k], ny = v.second + dy[k];
      if (nx >= 0 && nx <= 1000 && ny >= 0 && ny <= 1000) {
        if (dist[typ][nx][ny] > dist[typ][v.first][v.second] + 1) {
          dist[typ][nx][ny] = dist[typ][v.first][v.second] + 1;
          parent[typ][nx][ny] = v;
          qu.push(make_pair(nx, ny));
        }
      }
    }
  }
  return;
}
int summary(int first, int second) {
  return dist[0][first][second] + dist[1][first][second] +
         dist[2][first][second];
}
void write(pair<int, int> A, int typ) {
  pair<int, int> uk = A;
  while (parent[typ][uk.first][uk.second] != make_pair(-1, -1)) {
    uk = parent[typ][uk.first][uk.second];
    cout << uk.first << ' ' << uk.second << '\n';
  }
  return;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  pair<int, int> A, B, C;
  cin >> A.first >> A.second >> B.first >> B.second >> C.first >> C.second;
  bfs(A, 0);
  bfs(B, 1);
  bfs(C, 2);
  pair<int, int> ans = make_pair(0, 0);
  for (int i = 0; i <= 1000; i++)
    for (int j = 0; j <= 1000; j++)
      if (summary(i, j) + 1 < summary(ans.first, ans.second) + 1)
        ans = make_pair(i, j);
  cout << summary(ans.first, ans.second) + 1 << '\n';
  write(ans, 0);
  write(ans, 1);
  write(ans, 2);
  cout << ans.first << ' ' << ans.second << '\n';
  return 0;
}
