#include <bits/stdc++.h>
using namespace std;
struct myNum{
int data;
int times;
myNum(){}
myNum(int a){
data=a;
times=1;
}
void say(){
cout<<data<<" "<<times<<endl;
}
bool operator==(myNum m){
if(m.data == data)return true;
return false;
}
};
bool cmp(myNum a, myNum b){
if(a.times!=b.times)return a.times>b.times;
else return a.data<b.data;
}
int main() {
int n;cin>>n;
vector<myNum>v;
while(n--){
int a;cin>>a;
auto it = find(v.begin(),v.end(),a);
if(it==v.end()){
myNum m(a);
v.push_back(m);
}else{
(*it).times++;
}
}
sort(v.begin(),v.end(),cmp);
for(auto a :v)
a.say();
}