#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define MAX_VALUE 2000000001L

int main(void)	{
	register long int counter,tmp, main_num, num_to_add, i1,i2;
	long int *array, smallest[3], size;
	FILE *input, *output;
	
	if(!(input = fopen("operators.in","r")))	{
		printf("Failed to open operators.in\n");
		exit(EXIT_FAILURE);
	}
	if(!(output = fopen("operators.out","w")))	{
		printf("Failed to open operators.out\n");
		exit(EXIT_FAILURE);
	}
	
	smallest[0] = MAX_VALUE;

	fscanf(input,"%ld",&size);
	
	if(!(array = (long int *) malloc(size * sizeof(long int))))	{
		printf("Failed to allocate memory for input\n");
		exit(EXIT_FAILURE);
	}
	
	array[0] = 0;
	counter = 1;
	fscanf(input, "%ld", &array[0]);
	
	do	{
		fscanf(input, "%ld", &array[counter]);
		fscanf(input, "%ld", &array[counter + 1]);
		i1 = labs(array[0] + array[counter]);
		i2 = labs(array[0] + array[counter + 1]);
		counter += 2;
	}while(counter - 2 < size && i1 > i2);

	
	array =	(long int *) realloc((long int *) array, ((size = counter) * sizeof(long int)));
	
	for(main_num = 0; main_num < size; main_num++)	{
		for(num_to_add = main_num + 1; num_to_add < size; num_to_add++)	{
			if((tmp = (labs(((int ) array[main_num] + array[num_to_add])))) < smallest[0])	{
				smallest[0] = tmp;
				smallest[1] = array[main_num];
				smallest[2] = array[num_to_add];
			}
		}
	}
		
	fprintf(output,"%ld %ld",smallest[1],smallest[2]);
	
	free(array);
	
	exit(EXIT_SUCCESS);
}