#include <bits/stdc++.h>
using namespace std;
bool comp(pair<long long, long long> &p1, pair<long long, long long> &p2) {
  if (p1.first == p2.first) {
    return p1.second < p2.second;
  } else {
    return p1.first < p2.first;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long a1, b1, a2, b2, a3, b3;
  map<pair<long long, long long>, long long> mp;
  cin >> a1 >> b1;
  cin >> a2 >> b2;
  cin >> a3 >> b3;
  vector<pair<long long, long long> > vect;
  vect.push_back({a1, b1});
  vect.push_back({a2, b2});
  vect.push_back({a3, b3});
  sort(vect.begin(), vect.end(), comp);
  vector<pair<long long, long long> > vect1;
  for (long long i = vect[0].first; i <= vect[1].first; i++) {
    if (mp[{i, vect[0].second}] == 0) {
      mp[{i, vect[0].second}] = 1;
      vect1.push_back({i, vect[0].second});
    }
  }
  if (vect[1].second > vect[0].second) {
    for (long long i = vect[0].second + 1; i <= vect[1].second; i++) {
      if (mp[{vect[1].first, i}] == 0) {
        mp[{vect[1].first, i}] = 1;
        vect1.push_back({vect[1].first, i});
      }
    }
  } else if (vect[1].second < vect[0].second) {
    for (long long i = vect[0].second - 1; i >= vect[1].second; i--) {
      if (mp[{vect[1].first, i}] == 0) {
        mp[{vect[1].first, i}] = 1;
        vect1.push_back({vect[1].first, i});
      }
    }
  }
  long long h1 = vect[0].second;
  long long h2 = vect[1].second;
  if (h2 >= h1) {
    if (vect[2].second >= h1 and vect[2].second <= h2) {
      for (long long i = vect[1].first + 1; i <= vect[2].first; i++) {
        if (mp[{i, vect[2].second}] == 0) {
          mp[{i, vect[2].second}] = 1;
          vect1.push_back({i, vect[2].second});
        }
      }
    } else if (vect[2].second > h2) {
      for (long long i = vect[1].first + 1; i <= vect[2].first; i++) {
        if (mp[{i, vect[1].second}] == 0) {
          mp[{i, vect[1].second}] = 1;
          vect1.push_back({i, vect[1].second});
        }
      }
      for (long long i = h2 + 1; i <= vect[2].second; i++) {
        if (mp[{vect[2].first, i}] == 0) {
          mp[{vect[2].first, i}] = 1;
          vect1.push_back({vect[2].first, i});
        }
      }
    } else if (vect[2].second < h1) {
      for (long long i = vect[1].first + 1; i <= vect[2].first; i++) {
        if (mp[{i, vect[0].second}] == 0) {
          mp[{i, vect[0].second}] = 1;
          vect1.push_back({i, vect[0].second});
        }
      }
      for (long long i = h1 - 1; i >= vect[2].second; i--) {
        if (mp[{vect[2].first, i}] == 0) {
          mp[{vect[2].first, i}] = 1;
          vect1.push_back({vect[2].first, i});
        }
      }
    }
  } else {
    if (vect[2].second >= h2 and vect[2].second <= h1) {
      for (long long i = vect[1].first + 1; i <= vect[2].first; i++) {
        if (mp[{i, vect[2].second}] == 0) {
          mp[{i, vect[2].second}] = 1;
          vect1.push_back({i, vect[2].second});
        }
      }
    } else if (vect[2].second > h1) {
      for (long long i = vect[1].first + 1; i <= vect[2].first; i++) {
        if (mp[{i, vect[0].second}] == 0) {
          mp[{i, vect[0].second}] = 1;
          vect1.push_back({i, vect[0].second});
        }
      }
      for (long long i = h1 + 1; i <= vect[2].second; i++) {
        if (mp[{vect[2].first, i}] == 0) {
          mp[{vect[2].first, i}] = 1;
          vect1.push_back({vect[2].first, i});
        }
      }
    } else if (vect[2].second < h2) {
      for (long long i = vect[1].first + 1; i <= vect[2].first; i++) {
        if (mp[{i, vect[1].second}] == 0) {
          mp[{i, vect[1].second}] = 1;
          vect1.push_back({i, vect[1].second});
        }
      }
      for (long long i = h2 - 1; i >= vect[2].second; i--) {
        if (mp[{vect[2].first, i}] == 0) {
          mp[{vect[2].first, i}] = 1;
          vect1.push_back({vect[2].first, i});
        }
      }
    }
  }
  cout << vect1.size() << '\n';
  for (long long i = 0; i < vect1.size(); i++) {
    cout << vect1[i].first << " " << vect1[i].second << '\n';
  }
  return 0;
}
