You are given *n* points with integer coordinates on the plane. Points are given in a way such that there is no triangle, formed by any three of these *n* points, which area exceeds *S*.

Alyona tried to construct a triangle with integer coordinates, which contains all *n* points and which area doesn't exceed 4*S*, but, by obvious reason, had no success in that. Please help Alyona construct such triangle. Please note that vertices of resulting triangle are not necessarily chosen from *n* given points.
In the first line of the input two integers *n* and *S* (3 ≤ *n* ≤ 5000, 1 ≤ *S* ≤ 10<sup class="upper-index">18</sup>) are given — the number of points given and the upper bound value of any triangle's area, formed by any three of given *n* points.

The next *n* lines describes given points: *i*<sup class="upper-index">*th*</sup> of them consists of two integers *x*<sub class="lower-index">*i*</sub> and *y*<sub class="lower-index">*i*</sub> ( - 10<sup class="upper-index">8</sup> ≤ *x*<sub class="lower-index">*i*</sub>, *y*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">8</sup>) — coordinates of *i*<sup class="upper-index">*th*</sup> point.

It is guaranteed that there is at least one triple of points not lying on the same line.
# LUOGU_RID: 110988920
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
ll x[5010],y[5010],S;
ll getarea(int a,int b,int c)
{
	return abs((x[b]-x[a])*(y[c]-y[a])-(x[c]-x[a])*(y[b]-y[a]));
}
int main()
{
	scanf("%d%lld",&n,&S);
	for(int i=1;i<=n;i++)
		scanf("%lld%lld",&x[i],&y[i]);
	int a=1,b=2,c=3;
	while(1)
	{
		bool flag=0;
		for(int i=1;i<=n;i++)
		{
			if(getarea(i,b,c)>getarea(a,b,c))a=i,flag=1;
			if(getarea(a,i,c)>getarea(a,b,c))b=i,flag=1;
			if(getarea(a,b,i)>getarea(a,b,c))c=i,flag=1;
		}
		if(!flag)break;
	}
	printf("%lld %lld\n",x[b]+x[c]-x[a],y[b]+y[c]-y[a]);
	printf("%lld %lld\n",x[a]+x[c]-x[b],y[a]+y[c]-y[b]);
	printf("%lld %lld\n",x[a]+x[b]-x[c],y[a]+y[b]-y[c]);
	return 0;
}