#!/usr/bin/python3

import sys

P = []

for l in sys.stdin:
    point_str = l.split(' ')
    x = int(point_str[0])
    y = int(point_str[1])
    P.append((x, y))
    
def points_lt(p,q):
    return (p[0] < q[0] or (p[0] == q[0] and p[1] < q[1]))

def points_le(p,q):
    return (p[0] < q[0] or (p[0] == q[0] and p[1] <= q[1]))

def partition(A, begin, end):
    pivot = A[end - 1]
    q = begin
    for i in range(begin+1, end-1):
        if points_le(A[i], pivot):
            A[i], A[q] = A[q], A[i]
            q += 1
    A[end-1], A[q] = A[q], A[end-1]
    return q

def quick_sort_r(A, begin, end):
    if (end > begin + 1):       # if we are looking at more than one element
        q = partition(A, begin, end)
        quick_sort_r(A, begin, q)
        quick_sort_r(A, q+1, end)

def quick_sort(A):
    quick_sort_r(A, 0, len(A))

def binary_search(A, k, begin, end):
    while begin < end:
        middle = (end + begin - 1) // 2
        if A[middle] == k:
            return True
        elif points_lt(A[middle], k):
            begin = middle + 1
        else:
            end = middle
    return False

quick_sort(P)

def vec_diff(x,y):
    return (x[0]-y[0], x[1]-y[1])

def vec_rot_90(x):
    return (x[1],-x[0])

N = len(P)
for i in range(1,N):
    for j in range(i):
        p = P[i]
        q = P[j]
        pq = vec_diff(q,p)
        if pq[0] < 0 and pq[1] >= 0 or pq[0] >= 0 and pq[1] < 0:
            continue
        if pq[0] < 0 and pq[1] < 0:
            p, q = q, p
            pq = vec_diff(q,p)
        # must be pq[0] >= 0 and pq[1] >= 0
        ort = vec_rot_90(pq)
        r = vec_diff(p, ort)
        s = vec_diff(q, ort)
        if binary_search(P, r, 0, N) and binary_search(P, s, 0, N):
            print(p, q, r, s)
