#include<stdio.h> #include<iostream> #include<map> #include<vector> using namespace std; struct data { long cnt,val,index; }; vector<data>vec; map<int,int>mp; int main() { int tag=0,n,i; data ob; while(scanf("%d",&n)==1) { if(mp.find(n)==mp.end()) { mp[n]=++tag; ob.val=n; ob.cnt=1; ob.index=tag; vec.push_back(ob); } else { i=mp[n]; vec[i-1].cnt+=1; } } for(i=0;i<vec.size();i++) { printf("%ld %ld\n",vec[i].val,vec[i].cnt); } return 0; }