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

int main(){
	int n, *a;
	printf("\nEnter the value of n: ");
	scanf("%d", &n);
	if(NULL == (a = (int *)malloc((2*n - 1)*sizeof(int)))){
		printf("\nMemory Error!");
		exit(0);
	}
	for(int i = n - 1; i < 2*n -1; i++)
		scanf("%d", &a[i]);
	int mid = (2*n -1)/2 - 1;
	for(int i = 2*n - 2; i > 0; i -= 2){
		if(a[i] < a[i - 1]){
			a[mid] = a[i - 1];
		}
		else{
			a[mid] = a[i];
		}
		mid -= 1;
	}
	int secondMax = INT_MIN, maxIndex = 0;
	for(int i = 2; i < 2*n - 1; ){
		if(a[i] != a[0]){
			maxIndex = i-1;
			if(a[i] > secondMax){
				secondMax = a[i];
				//printf("\n%d = Second Maximum.", secondMax);
			}
		}
		else{
			maxIndex = i;
			if(a[i-1] > secondMax && a[i] != a[0]){
				secondMax = a[i-1];
				//printf("\n%d = Second Maximum.", secondMax);
			}
		}
		//printf("\nIndex of maximum = %d", maxIndex);
		i = 2*maxIndex + 2;
	}
	if(secondMax == a[0] || secondMax == INT_MIN)
		printf("\nNo second maximum exists.");
	else
		printf("\n%d is the second maximum.", secondMax);
	printf("\n\n");
	return 1;
}
