#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct Point
{
	int x,y;
}p[4];
struct Edge
{
	int x,y,val;
}e[4];
int main()
{
	for(int i=1;i<=3;i++)
	{
		scanf("%d%d",&p[i].x,&p[i].y);//!!!!&
	}
	int sum=0;
	for(int i=1;i<=3;i++)
	{
		int j=i%3+1;
		e[i].x=p[j].x-p[i].x;
		e[i].y=p[j].y-p[i].y;//i,j
		e[i].val=abs(e[i].x)+abs(e[i].y);
		sum+=e[i].val;
	}
	int ans=1;
	for(int i=2;i<=3;i++)
	{
		if(sum-e[i].val<sum-e[ans].val)
		{
			ans=i;
		}
	}
	ans=ans%3+1;
	int j=ans%3+1;
	int tot=0;
	if(e[ans].x!=0) tot++;
	if(e[ans].y!=0) tot++;
	if(e[j].x!=0) tot++;
	if(e[j].y!=0) tot++;	
	if(e[j].y*e[ans].y>0)
	{
		tot--;
	} 
	printf("%d\n",tot);
	Point now;
	now=p[ans];
	if(e[ans].x!=0)
	{
//		if()
		printf("%d %d ",now.x,now.y);
		now.x+=e[ans].x;
		printf("%d %d\n",now.x,now.y);		 
	} 
	int been=0;
	if(e[ans].y!=0)
	{
		printf("%d %d ",now.x,now.y);
		now.y+=e[ans].y;
		if(e[j].y*e[ans].y>0)
		{
			been=1;
			now.y+=e[j].y;
		} 
		printf("%d %d\n",now.x,now.y);
	} 
	if(e[j].x!=0)
	{
		printf("%d %d ",now.x,now.y);
		now.x+=e[j].x;
		printf("%d %d\n",now.x,now.y);
	} 
	if(!been&&e[j].y!=0)
	{
		printf("%d %d ",now.x,now.y);
		now.y+=e[j].y;
		printf("%d %d\n",now.x,now.y);
	} 
	return 0;
} 
