import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num1 = scanner.nextInt(); int[] a = new int[num1]; int[] count = new int[100]; double avg,x = 0; long s = 0; for (int i = 0; i < num1; i++) { a[i] = scanner.nextInt(); } for (int i = 0; i < num1; i++) { count[a[i]]++; } for (int i = 0; i < 100; i++) { if(count[i] != 0){ System.out.println(i + " " + count[i]); } } } public static boolean judge(int i,int j){ int a,s = 0; while(i != 0){ a = i % 10; s = s + a; i /= 10; } if(s == j)return true; else return false; } public static void paiXux(int[] a){ int temp; for(int i = 0;i < a.length - 1;i++){ for(int k = 0;k < a.length - i - 1;k++){ if(a[k] > a[k + 1]){ temp = a[k]; a[k] = a[k + 1]; a[k + 1] = temp; } } } } public static void paiXud(int[] a){ int temp; for(int i = 0;i < a.length - 1;i++){ for(int k = 0;k < a.length - i - 1;k++){ if(a[k] < a[k + 1]){ temp = a[k]; a[k] = a[k + 1]; a[k + 1] = temp; } } } } public static int MAX(int[] a){ int max = a[0]; for (int i = 0; i < a.length; i++) { if(max < a[i]){ max = a[i]; } } return max; } public static int MIN(int[] a){ int min = a[0]; for (int i = 0; i < a.length; i++) { if(min > a[i]){ min = a[i]; } } return min; } public static int sum(int a){ int x,s = 0; while(a != 0){ x = a % 10; s = s + x; a /= 10; } return s; } public static boolean isPrime(int a){ if(a <= 1)return false; else for(int i = 2;i <= Math.sqrt(a);i++){ if(a % i == 0)return false; }return true; } public static int qiuYu(int i){ int a; a = i % 10; return a; } } /************************************************************** Problem: 1884 User: admin Language: Java Result: Accepted Time:917 ms Memory:42240 kb ****************************************************************/