#include <iostream>
#include <fstream>
#include <limits.h>
#include <vector>
#include <algorithm>
#include <unordered_map>
#include <stack>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int main()
{
int n;
fin >> n;
stack<int> stiva;
vector<int> vec(n);
for (int i = 0; i < n; i++)
{
fin >> vec[i];
if (stiva.empty() || stiva.top() == vec[i])
{
stiva.push(vec[i]);
}
else
{
stiva.pop();
}
}
if (!stiva.empty())
{
int NrFav = stiva.top(), contor = 0;
for (int i = 0; i < n; i++)
{
if (vec[i] == NrFav)
{
contor++;
}
}
if (contor > n / 2)
{
fout << NrFav << ' ' << contor;
return 0;
}
}
fout << -1;
return 0;
}
/*
*/