#include <bits/stdc++.h>
int mut(int x) {
  if (x < 0)
    return -x;
  else
    return x;
}
int d[1000001][2];
int d1[1000001][2];
int main(void) {
  int ax;
  int ay;
  int bx;
  int by;
  int cx;
  int cy;
  int c = 0;
  int min = 99999;
  scanf("%d%d%d%d%d%d", &ax, &ay, &bx, &by, &cx, &cy);
  int x = ax;
  int y = ay;
  d[c][0] = ax;
  d[c][1] = ay;
  c++;
  if (bx >= ax && by >= ay) {
    for (int i = y; i <= by; i++) {
      for (int j = x; j <= bx; j++) {
        if (min > mut(i - cy) + mut(j - cx)) {
          min = mut(i - cy) + mut(j - cx);
          d1[min][0] = j;
          d1[min][1] = i;
        }
      }
    }
  } else if (bx <= ax && by <= ay) {
    for (int i = y; i >= by; i--) {
      for (int j = x; j >= bx; j--) {
        if (min > mut(i - cy) + mut(j - cx)) {
          min = mut(i - cy) + mut(j - cx);
          d1[min][0] = j;
          d1[min][1] = i;
        }
      }
    }
  } else if (bx >= ax && by <= ay) {
    for (int i = y; i >= by; i--) {
      for (int j = x; j <= bx; j++) {
        if (min > mut(i - cy) + mut(j - cx)) {
          min = mut(i - cy) + mut(j - cx);
          d1[min][0] = j;
          d1[min][1] = i;
        }
      }
    }
  } else if (bx <= ax && by >= ay) {
    for (int i = y; i <= by; i++) {
      for (int j = x; j >= bx; j--) {
        if (min > mut(i - cy) + mut(j - cx)) {
          min = mut(i - cy) + mut(j - cx);
          d1[min][0] = j;
          d1[min][1] = i;
        }
      }
    }
  }
  int x1 = d1[min][0];
  int y1 = d1[min][1];
  if (ax < x1) {
    while (x < x1) {
      x++;
      d[c][0] = x;
      d[c][1] = y;
      c++;
    }
  } else if (ax > x1) {
    while (x > x1) {
      x--;
      d[c][0] = x;
      d[c][1] = y;
      c++;
    }
  }
  if (ay > y1) {
    while (y > y1) {
      y--;
      d[c][0] = x;
      d[c][1] = y;
      c++;
    }
  } else if (ay < y1) {
    while (y < y1) {
      y++;
      d[c][0] = x;
      d[c][1] = y;
      c++;
    }
  }
  x = x1;
  y = y1;
  if (x1 < bx) {
    while (x < bx) {
      x++;
      d[c][0] = x;
      d[c][1] = y;
      c++;
    }
  } else if (x1 > bx) {
    while (x > bx) {
      x--;
      d[c][0] = x;
      d[c][1] = y;
      c++;
    }
  }
  if (y1 > by) {
    while (y > by) {
      y--;
      d[c][0] = x;
      d[c][1] = y;
      c++;
    }
  } else if (y1 < by) {
    while (y < by) {
      y++;
      d[c][0] = x;
      d[c][1] = y;
      c++;
    }
  }
  x = x1;
  y = y1;
  if (x1 < cx) {
    while (x1 < cx) {
      x1++;
      d[c][0] = x1;
      d[c][1] = y1;
      c++;
    }
  } else if (x1 > cx) {
    while (x1 > cx) {
      x1--;
      d[c][0] = x1;
      d[c][1] = y1;
      c++;
    }
  }
  if (y1 < cy) {
    while (y1 < cy) {
      y1++;
      d[c][0] = x1;
      d[c][1] = y1;
      c++;
    }
  } else if (y1 > cy) {
    while (y1 > cy) {
      y1--;
      d[c][0] = x1;
      d[c][1] = y1;
      c++;
    }
  }
  printf("%d\n", c);
  for (int i = 0; i < c; i++) {
    printf("%d %d\n", d[i][0], d[i][1]);
  }
  return 0;
}
