#include<bits/stdc++.h>
#pragma GCC optimize("O2")
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define pii pair<int,int>
#define ii int,int
#define fi first
#define se second
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define umap unordered_map
#define BIT(mask, i) ((mask >> i)&1)
#define ALL(c) c.begin(), c.end()
using namespace std;
mt19937 rd(chrono::high_resolution_clock::now().time_since_epoch().count());
int rand(int l, int r){
return l + rd()*rd()%(r-l+1);
}
const int N = 1e6+7;
const int M = 1e3+3;
const int MOD = 1e9+7;
const int inf = 3e18;
int n;
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
map<long long, int> mp;
for(int i = 1; i <= n; i++){
long long x;
cin >> x;
mp[x]++;
} // đếm được mỗi phần tử xuất hiện bao nhiêu lần rồi
// -> in ra map -> thỏa mãn đề bài
for(auto i : mp){
cout << i.first << ' ' << i.second << '\n';
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMiIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPMyIpCiNwcmFnbWEgR0NDIG9wdGltaXplKCJPZmFzdCIpCgojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgaWkgaW50LGludAojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbGIgbG93ZXJfYm91bmQKI2RlZmluZSB1YiB1cHBlcl9ib3VuZAojZGVmaW5lIHVtYXAgdW5vcmRlcmVkX21hcAojZGVmaW5lIEJJVChtYXNrLCBpKSAoKG1hc2sgPj4gaSkmMSkKI2RlZmluZSBBTEwoYykgYy5iZWdpbigpLCBjLmVuZCgpCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbXQxOTkzNyByZChjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwppbnQgcmFuZChpbnQgbCwgaW50IHIpewogICAgcmV0dXJuICBsICsgcmQoKSpyZCgpJShyLWwrMSk7Cn0KCmNvbnN0IGludCBOID0gMWU2Kzc7CmNvbnN0IGludCBNID0gMWUzKzM7CmNvbnN0IGludCBNT0QgPSAxZTkrNzsKY29uc3QgaW50IGluZiA9IDNlMTg7CgppbnQgbjsKCnNpZ25lZCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgY2luID4+IG47CiAgICBtYXA8bG9uZyBsb25nLCBpbnQ+IG1wOwoKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICBsb25nIGxvbmcgeDsKICAgICAgICBjaW4gPj4geDsKICAgICAgICBtcFt4XSsrOwogICAgfSAgIC8vIMSR4bq/bSDEkcaw4bujYyBt4buXaSBwaOG6p24gdOG7rSB4deG6pXQgaGnhu4duIGJhbyBuaGnDqnUgbOG6p24gcuG7k2kKICAgIC8vIC0+IGluIHJhIG1hcCAtPiB0aOG7j2EgbcOjbiDEkeG7gSBiw6BpCiAgICBmb3IoYXV0byBpIDogbXApewogICAgICAgIGNvdXQgPDwgaS5maXJzdCA8PCAnICcgPDwgaS5zZWNvbmQgPDwgJ1xuJzsKICAgIH0KfQo=