#include <bits/stdc++.h>
using namespace std;
struct Point {
  int x, y;
};
int main() {
  Point a, b, c;
  int res = 0;
  cin >> a.x >> a.y >> b.x >> b.y >> c.x >> c.y;
  int x = a.x, y = a.y;
  res++;
  vector<pair<int, int>> ans;
  ans.push_back(make_pair(x, y));
  if (abs(a.x - b.x) + abs(a.y - b.y) > abs(a.x - c.x) + abs(a.y - c.y)) {
    swap(b.x, c.x);
    swap(b.y, c.y);
  }
  int q = b.x - a.x;
  int w = b.y - a.y;
  int minx = x, miny = y, mindist = abs(x - c.x) + abs(y - c.y);
  while (q != 0 || w != 0) {
    if (q > 0 && c.x > x) {
      q--;
      x++;
      res++;
      ans.push_back(make_pair(x, y));
    } else if (q < 0 && c.x < x) {
      q++;
      x--;
      res++;
      ans.push_back(make_pair(x, y));
    } else if (w > 0 && c.y > y) {
      w--;
      y++;
      res++;
      ans.push_back(make_pair(x, y));
    } else if (w < 0 && c.y < y) {
      w++;
      y--;
      res++;
      ans.push_back(make_pair(x, y));
    } else if (q > 0) {
      q--;
      x++;
      res++;
      ans.push_back(make_pair(x, y));
    } else if (q < 0) {
      q++;
      x--;
      res++;
      ans.push_back(make_pair(x, y));
    } else if (w > 0) {
      w--;
      y++;
      res++;
      ans.push_back(make_pair(x, y));
    } else {
      w++;
      y--;
      res++;
      ans.push_back(make_pair(x, y));
    }
    if ((abs(x - c.x) + abs(y - c.y)) < mindist) {
      minx = x;
      miny = y;
      mindist = abs(x - c.x) + abs(y - c.y);
    }
  }
  x = minx;
  y = miny;
  q = c.x - minx;
  w = c.y - miny;
  while (q != 0 || w != 0) {
    if (q > 0) {
      x++;
      q--;
    } else if (q < 0) {
      x--;
      q++;
    } else if (w > 0) {
      y++;
      w--;
    } else if (w < 0) {
      y--;
      w++;
    }
    res++;
    ans.push_back(make_pair(x, y));
  }
  cout << res << endl;
  for (int i = 0; i < res; i++) {
    cout << ans[i].first << " " << ans[i].second << endl;
  }
  return 0;
}
