#include <stdio.h>
#include <stdlib.h>

#define MAXN 1000000

int a[MAXN];
int b[MAXN][2];

int scmp(const int* a, const int* b)
{
  if(*a>*b)
    return 1;
  else if(*a<*b)
    return -1;
  return 0;
}

int ccmp(const int a[2], const int b[2])
{
  if(a[1]<b[1])
    return 1;
  else if(a[1]>b[1])
    return -1;
  else if(a[0]>b[0])
    return 1;
  else if(a[0]<b[0])
    return -1;
  return 0;
}

int main(void)
{
  int q,nb,n=0,i=0;
  
  while(scanf("%d",&a[i])==1)
    i++;
  n=i;
  qsort(a, n, sizeof(int), (int (*)(const void*, const void*)) scmp);
  
  q=0;
  nb=0;
  a[n]=a[n-1]-1;
  for(i=1;i<=n;i++)
  {
    if(a[i]!=a[i-1])
    {
      b[nb][0]=a[i-1];
      b[nb][1]=q+1;
      nb++;
      q=0;
    }
    else
      q++;
  }
  
  qsort(b, nb, 2*sizeof(int), (int (*)(const void*, const void*)) ccmp);
  
  for(i=0;i<nb;i++)
    printf("%d %d\n",b[i][0],b[i][1]);
  return 0;
}





