import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.Arrays;
import java.util.Set;
import java.util.TreeSet;
public class Main{
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
static int readInt() throws IOException{
in.nextToken();
return (int)in.nval;
}
static int maxn = 100005;
static int N,num,cnt=0;
static int[] a = new int[maxn];
public static void main(String[] args) throws IOException{
N = readInt();
Set<Integer> set =new TreeSet<>();
for(int i=1;i<=N;i++){
num=readInt();
set.add(num);
a[num]++;
}
for(Integer temp : set){
System.out.printf("%d:%d\n",temp,a[temp]);
}
}
}