#include <bits/stdc++.h>
using namespace std;
pair<int, int> n[3];
bool vis[1005][1005];
bool isIN(int x, int l, int r) {
  if (l > r) swap(l, r);
  return l <= x && x <= r;
}
int main() {
  int x, y;
  for (int i = 0; i < 3; i++) {
    cin >> x >> y;
    n[i] = make_pair(x, y);
  }
  sort(n, n + 3);
  int N;
  if (isIN(n[1].second, n[0].second, n[2].second)) {
    N = abs(n[0].first - n[2].first) + abs(n[0].second - n[2].second) + 1;
    cout << N << endl;
    for (x = n[0].first, y = n[0].second; x != n[1].first; x++) {
      cout << x << " " << y << endl;
    }
    for (; y != n[1].second;) {
      if (!vis[x][y]) cout << x << " " << y << endl;
      vis[x][y] = 1;
      if (y < n[2].second) y++;
      if (y > n[2].second) y--;
    }
    for (; y != n[2].second;) {
      if (!vis[x][y]) cout << x << " " << y << endl;
      vis[x][y] = 1;
      if (y < n[2].second) y++;
      if (y > n[2].second) y--;
    }
    for (; x != n[2].first; x++) {
      if (!vis[x][y]) cout << x << " " << y << endl;
      vis[x][y] = 1;
    }
  } else {
    if (n[1].second >= n[0].second && n[2].second >= n[0].second ||
        n[1].second <= n[0].second && n[2].second <= n[0].second) {
      N = abs(n[0].first - n[2].first) + abs(n[0].second - n[1].second) + 1;
      cout << N << endl;
      for (x = n[0].first, y = n[0].second; x != n[1].first; x++) {
        if (!vis[x][y]) cout << x << " " << y << endl;
        vis[x][y] = 1;
      }
      for (; y != n[1].second;) {
        if (!vis[x][y]) cout << x << " " << y << endl;
        vis[x][y] = 1;
        if (y < n[1].second) y++;
        if (y > n[1].second) y--;
      }
      if (!vis[n[1].first][n[1].second])
        cout << n[1].first << " " << n[1].second << endl;
      vis[n[1].first][n[1].second] = 1;
      y = n[2].second;
      for (; x != n[2].first; x++) {
        if (!vis[x][y]) cout << x << " " << y << endl;
        vis[x][y] = 1;
      }
    } else {
      N = abs(n[0].first - n[2].first) + abs(n[0].second - n[1].second) +
          abs(n[0].second - n[2].second) + 1;
      cout << N << endl;
      for (x = n[0].first, y = n[0].second; x != n[1].first; x++) {
        if (!vis[x][y]) cout << x << " " << y << endl;
        vis[x][y] = 1;
      }
      for (; y != n[1].second;) {
        if (!vis[x][y]) cout << x << " " << y << endl;
        vis[x][y] = 1;
        if (y < n[1].second) y++;
        if (y > n[1].second) y--;
      }
      if (!vis[n[1].first][n[1].second])
        cout << n[1].first << " " << n[1].second << endl;
      vis[n[1].first][n[1].second] = 1;
      y = n[0].second;
      for (; y != n[2].second;) {
        if (!vis[x][y]) cout << x << " " << y << endl;
        vis[x][y] = 1;
        if (y < n[2].second) y++;
        if (y > n[2].second) y--;
      }
      if (!vis[x][n[2].second]) cout << x << " " << n[2].second << endl;
      vis[x][n[2].second] = 1;
      for (; x != n[2].first; x++) {
        if (!vis[x][y]) cout << x << " " << y << endl;
        vis[x][y] = 1;
      }
    }
  }
  if (!vis[n[2].first][n[2].second])
    cout << n[2].first << " " << n[2].second << endl;
  return 0;
}
