import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Main {
	int DATAKIND = 26;
	int[] count;
	public static void main(String[] args) 
	throws IOException{
		// TODO Auto-generated method stub
		new Main().run();
	}
	
	public Main(){
		count = new int[DATAKIND];
		for (int i=0; i<count.length; i++)
			count[i] = 0;
		
	}

	void run () 
		throws IOException{
		StandardIn buf = new StandardIn();
		
		ArrayList<String> al = buf.getlines(0);
		for(int i=0; i<al.size(); i++)
			countData(al.get(i).toCharArray());
		
		
		printResult(count);
	}
	
	private void printResult(int[] count){
		for(int i=0; i<count.length; i++)
			System.out.println(gethashkey(i)+" : "+count[i]);
	}
	private int[] countData(char[] data){

		for (int i=0; i<data.length; i++)
			if(Character.isAlphabetic(data[i]))
				count[hashdata(Character.toLowerCase(data[i]))] ++;
		
		return count;
	}
	
	private int hashdata(char data){
		return (int)(data-'a');
	}
	
	private String gethashkey(int data){
		return Character.toString((char)(data+'a'));
	}
}

class TempReaderCall{
	/*
	static ArrayList<String> getStdInReadlines(BufferedReader br, int line) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		for (int i = 0; i < line; i++)
			list.add(br.readLine());
		return list;
	}
	
	static ArrayList<String> getStdInReadlines(BufferedReader br, String end) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		String newdata;
		do{
			newdata =br.readLine();
			if (end.compareTo(newdata)==0)
				break;
			list.add(newdata);
		}while(newdata!=null);
		
		return list;
	}
	
	static String getStdInRead(BufferedReader br) throws IOException {
		return (br.readLine());
	}
	*/
	
	static int[] splitIntArrayFromString(String st) {
		String[] sts = st.split(" ");
		int[] data = new int[sts.length];
		
		for (int i=0;i<sts.length;i++){
			data[i] = Integer.parseInt(sts[i]);
		}
		
		return data;
	}
}

class StandardIn{
	private BufferedReader br;
	
	StandardIn(){
		br = new BufferedReader (new InputStreamReader(System.in));
	}
	
	ArrayList<String> getlines(int line) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		if (line==0){
			String tmplinedata;
			while(null != (tmplinedata = br.readLine())){
				list.add(tmplinedata);
			}
		}
		else {
			for (int i = 0; i < line; i++)
				list.add(br.readLine());
		}
		return list;
	}
	
	ArrayList<String> getlines(String end) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		String newdata;
		do{
			newdata =br.readLine();
			if (end.compareTo(newdata)==0)
				break;
			list.add(newdata);
		}while(newdata!=null);
		
		return list;
	}
	
	String getaline() throws IOException {
		return (br.readLine());
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayList; ArrayList java.util public class Main {
	int DATAKIND = 26;
	int[] count;
	public static void main(String[] args) 
	throws IOException{
		// TODO Auto-generated method stub
		new Main().run();
	}
	
	public Main(){
		count = new int[DATAKIND];
		for (int i=0; i<count.length; i++)
			count[i] = 0;
		
	}

	void run () 
		throws IOException{
		StandardIn buf = new StandardIn();
		
		ArrayList<String> al = buf.getlines(0);
		for(int i=0; i<al.size(); i++)
			countData(al.get(i).toCharArray());
		
		
		printResult(count);
	}
	
	private void printResult(int[] count){
		for(int i=0; i<count.length; i++)
			System.out.println(gethashkey(i)+" : "+count[i]);
	}
	private int[] countData(char[] data){

		for (int i=0; i<data.length; i++)
			if(Character.isAlphabetic(data[i]))
				count[hashdata(Character.toLowerCase(data[i]))] ++;
		
		return count;
	}
	
	private int hashdata(char data){
		return (int)(data-'a');
	}
	
	private String gethashkey(int data){
		return Character.toString((char)(data+'a'));
	}
} Main int DATAKIND = 26; DATAKIND 26 int[] count; count public static void main(String[] args) 
	throws IOException{
		// TODO Auto-generated method stub
		new Main().run();
	} main {
		// TODO Auto-generated method stub
		new Main().run();
	} new Main().run() new Main().run new Main() String[] args args public Main(){
		count = new int[DATAKIND];
		for (int i=0; i<count.length; i++)
			count[i] = 0;
		
	} Main {
		count = new int[DATAKIND];
		for (int i=0; i<count.length; i++)
			count[i] = 0;
		
	} count = new int[DATAKIND] count new int[DATAKIND] DATAKIND for (int i=0; i<count.length; i++)
			count[i] = 0; int i=0; int i=0; i 0 i<count.length i count.length count count.length i++ i++ i count[i] = 0; count[i] = 0 count[i] count i 0 void run () 
		throws IOException{
		StandardIn buf = new StandardIn();
		
		ArrayList<String> al = buf.getlines(0);
		for(int i=0; i<al.size(); i++)
			countData(al.get(i).toCharArray());
		
		
		printResult(count);
	} run {
		StandardIn buf = new StandardIn();
		
		ArrayList<String> al = buf.getlines(0);
		for(int i=0; i<al.size(); i++)
			countData(al.get(i).toCharArray());
		
		
		printResult(count);
	} StandardIn buf = new StandardIn(); buf new StandardIn() ArrayList<String> al = buf.getlines(0); al buf.getlines(0) buf.getlines buf 0 for(int i=0; i<al.size(); i++)
			countData(al.get(i).toCharArray()); int i=0; int i=0; i 0 i<al.size() i al.size() al.size al i++ i++ i countData(al.get(i).toCharArray()); countData(al.get(i).toCharArray()) countData al.get(i).toCharArray() al.get(i).toCharArray al.get(i) al.get al i printResult(count) printResult count private void printResult(int[] count){
		for(int i=0; i<count.length; i++)
			System.out.println(gethashkey(i)+" : "+count[i]);
	} printResult {
		for(int i=0; i<count.length; i++)
			System.out.println(gethashkey(i)+" : "+count[i]);
	} for(int i=0; i<count.length; i++)
			System.out.println(gethashkey(i)+" : "+count[i]); int i=0; int i=0; i 0 i<count.length i count.length count count.length i++ i++ i System.out.println(gethashkey(i)+" : "+count[i]); System.out.println(gethashkey(i)+" : "+count[i]) System.out.println System.out System System.out gethashkey(i)+" : "+count[i] gethashkey(i)+" : "+count[i] gethashkey(i) gethashkey i " : " count[i] count i int[] count count private int[] countData(char[] data){

		for (int i=0; i<data.length; i++)
			if(Character.isAlphabetic(data[i]))
				count[hashdata(Character.toLowerCase(data[i]))] ++;
		
		return count;
	} countData {

		for (int i=0; i<data.length; i++)
			if(Character.isAlphabetic(data[i]))
				count[hashdata(Character.toLowerCase(data[i]))] ++;
		
		return count;
	} for (int i=0; i<data.length; i++)
			if(Character.isAlphabetic(data[i]))
				count[hashdata(Character.toLowerCase(data[i]))] ++; int i=0; int i=0; i 0 i<data.length i data.length data data.length i++ i++ i if(Character.isAlphabetic(data[i]))
				count[hashdata(Character.toLowerCase(data[i]))] ++; if(Character.isAlphabetic(data[i]))
				count[hashdata(Character.toLowerCase(data[i]))] ++; Character.isAlphabetic(data[i]) Character.isAlphabetic Character data[i] data i count[hashdata(Character.toLowerCase(data[i]))] ++ count[hashdata(Character.toLowerCase(data[i]))] count hashdata(Character.toLowerCase(data[i])) hashdata Character.toLowerCase(data[i]) Character.toLowerCase Character data[i] data i return count; count char[] data data private int hashdata(char data){
		return (int)(data-'a');
	} hashdata {
		return (int)(data-'a');
	} return (int)(data-'a'); (int)(data-'a') data 'a' char data data private String gethashkey(int data){
		return Character.toString((char)(data+'a'));
	} gethashkey {
		return Character.toString((char)(data+'a'));
	} return Character.toString((char)(data+'a')); Character.toString((char)(data+'a')) Character.toString Character (char)(data+'a') data 'a' int data data class TempReaderCall{
	/*
	static ArrayList<String> getStdInReadlines(BufferedReader br, int line) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		for (int i = 0; i < line; i++)
			list.add(br.readLine());
		return list;
	}
	
	static ArrayList<String> getStdInReadlines(BufferedReader br, String end) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		String newdata;
		do{
			newdata =br.readLine();
			if (end.compareTo(newdata)==0)
				break;
			list.add(newdata);
		}while(newdata!=null);
		
		return list;
	}
	
	static String getStdInRead(BufferedReader br) throws IOException {
		return (br.readLine());
	}
	*/
	
	static int[] splitIntArrayFromString(String st) {
		String[] sts = st.split(" ");
		int[] data = new int[sts.length];
		
		for (int i=0;i<sts.length;i++){
			data[i] = Integer.parseInt(sts[i]);
		}
		
		return data;
	}
} TempReaderCall static int[] splitIntArrayFromString(String st) {
		String[] sts = st.split(" ");
		int[] data = new int[sts.length];
		
		for (int i=0;i<sts.length;i++){
			data[i] = Integer.parseInt(sts[i]);
		}
		
		return data;
	} splitIntArrayFromString {
		String[] sts = st.split(" ");
		int[] data = new int[sts.length];
		
		for (int i=0;i<sts.length;i++){
			data[i] = Integer.parseInt(sts[i]);
		}
		
		return data;
	} String[] sts = st.split(" "); sts st.split(" ") st.split st " " int[] data = new int[sts.length]; data new int[sts.length] sts.length sts sts.length for (int i=0;i<sts.length;i++){
			data[i] = Integer.parseInt(sts[i]);
		} int i=0; int i=0; i 0 i<sts.length i sts.length sts sts.length i++ i++ i {
			data[i] = Integer.parseInt(sts[i]);
		} {
			data[i] = Integer.parseInt(sts[i]);
		} data[i] = Integer.parseInt(sts[i]) data[i] data i Integer.parseInt(sts[i]) Integer.parseInt Integer sts[i] sts i return data; data String st st class StandardIn{
	private BufferedReader br;
	
	StandardIn(){
		br = new BufferedReader (new InputStreamReader(System.in));
	}
	
	ArrayList<String> getlines(int line) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		if (line==0){
			String tmplinedata;
			while(null != (tmplinedata = br.readLine())){
				list.add(tmplinedata);
			}
		}
		else {
			for (int i = 0; i < line; i++)
				list.add(br.readLine());
		}
		return list;
	}
	
	ArrayList<String> getlines(String end) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		String newdata;
		do{
			newdata =br.readLine();
			if (end.compareTo(newdata)==0)
				break;
			list.add(newdata);
		}while(newdata!=null);
		
		return list;
	}
	
	String getaline() throws IOException {
		return (br.readLine());
	}
} StandardIn private BufferedReader br; br StandardIn(){
		br = new BufferedReader (new InputStreamReader(System.in));
	} StandardIn {
		br = new BufferedReader (new InputStreamReader(System.in));
	} br = new BufferedReader (new InputStreamReader(System.in)) br new BufferedReader (new InputStreamReader(System.in)) ArrayList<String> getlines(int line) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		if (line==0){
			String tmplinedata;
			while(null != (tmplinedata = br.readLine())){
				list.add(tmplinedata);
			}
		}
		else {
			for (int i = 0; i < line; i++)
				list.add(br.readLine());
		}
		return list;
	} getlines {
		ArrayList<String> list = new ArrayList<String>();
		if (line==0){
			String tmplinedata;
			while(null != (tmplinedata = br.readLine())){
				list.add(tmplinedata);
			}
		}
		else {
			for (int i = 0; i < line; i++)
				list.add(br.readLine());
		}
		return list;
	} ArrayList<String> list = new ArrayList<String>(); list new ArrayList<String>() if (line==0){
			String tmplinedata;
			while(null != (tmplinedata = br.readLine())){
				list.add(tmplinedata);
			}
		}
		else {
			for (int i = 0; i < line; i++)
				list.add(br.readLine());
		} line==0 line 0 {
			String tmplinedata;
			while(null != (tmplinedata = br.readLine())){
				list.add(tmplinedata);
			}
		} String tmplinedata; tmplinedata while(null != (tmplinedata = br.readLine())){
				list.add(tmplinedata);
			} null != (tmplinedata = br.readLine()) null (tmplinedata = br.readLine()) tmplinedata br.readLine() br.readLine br {
				list.add(tmplinedata);
			} list.add(tmplinedata) list.add list tmplinedata {
			for (int i = 0; i < line; i++)
				list.add(br.readLine());
		} for (int i = 0; i < line; i++)
				list.add(br.readLine()); int i = 0; int i = 0; i 0 i < line i line i++ i++ i list.add(br.readLine()); list.add(br.readLine()) list.add list br.readLine() br.readLine br return list; list int line line ArrayList<String> getlines(String end) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		String newdata;
		do{
			newdata =br.readLine();
			if (end.compareTo(newdata)==0)
				break;
			list.add(newdata);
		}while(newdata!=null);
		
		return list;
	} getlines {
		ArrayList<String> list = new ArrayList<String>();
		String newdata;
		do{
			newdata =br.readLine();
			if (end.compareTo(newdata)==0)
				break;
			list.add(newdata);
		}while(newdata!=null);
		
		return list;
	} ArrayList<String> list = new ArrayList<String>(); list new ArrayList<String>() String newdata; newdata do{
			newdata =br.readLine();
			if (end.compareTo(newdata)==0)
				break;
			list.add(newdata);
		}while(newdata!=null); newdata!=null newdata null {
			newdata =br.readLine();
			if (end.compareTo(newdata)==0)
				break;
			list.add(newdata);
		} newdata =br.readLine() newdata br.readLine() br.readLine br if (end.compareTo(newdata)==0)
				break; end.compareTo(newdata)==0 end.compareTo(newdata) end.compareTo end newdata 0 break; list.add(newdata) list.add list newdata return list; list String end end String getaline() throws IOException {
		return (br.readLine());
	} getaline {
		return (br.readLine());
	} return (br.readLine()); (br.readLine()) br.readLine br public class Main {
	int DATAKIND = 26;
	int[] count;
	public static void main(String[] args) 
	throws IOException{
		// TODO Auto-generated method stub
		new Main().run();
	}
	
	public Main(){
		count = new int[DATAKIND];
		for (int i=0; i<count.length; i++)
			count[i] = 0;
		
	}

	void run () 
		throws IOException{
		StandardIn buf = new StandardIn();
		
		ArrayList<String> al = buf.getlines(0);
		for(int i=0; i<al.size(); i++)
			countData(al.get(i).toCharArray());
		
		
		printResult(count);
	}
	
	private void printResult(int[] count){
		for(int i=0; i<count.length; i++)
			System.out.println(gethashkey(i)+" : "+count[i]);
	}
	private int[] countData(char[] data){

		for (int i=0; i<data.length; i++)
			if(Character.isAlphabetic(data[i]))
				count[hashdata(Character.toLowerCase(data[i]))] ++;
		
		return count;
	}
	
	private int hashdata(char data){
		return (int)(data-'a');
	}
	
	private String gethashkey(int data){
		return Character.toString((char)(data+'a'));
	}
} public class Main {
	int DATAKIND = 26;
	int[] count;
	public static void main(String[] args) 
	throws IOException{
		// TODO Auto-generated method stub
		new Main().run();
	}
	
	public Main(){
		count = new int[DATAKIND];
		for (int i=0; i<count.length; i++)
			count[i] = 0;
		
	}

	void run () 
		throws IOException{
		StandardIn buf = new StandardIn();
		
		ArrayList<String> al = buf.getlines(0);
		for(int i=0; i<al.size(); i++)
			countData(al.get(i).toCharArray());
		
		
		printResult(count);
	}
	
	private void printResult(int[] count){
		for(int i=0; i<count.length; i++)
			System.out.println(gethashkey(i)+" : "+count[i]);
	}
	private int[] countData(char[] data){

		for (int i=0; i<data.length; i++)
			if(Character.isAlphabetic(data[i]))
				count[hashdata(Character.toLowerCase(data[i]))] ++;
		
		return count;
	}
	
	private int hashdata(char data){
		return (int)(data-'a');
	}
	
	private String gethashkey(int data){
		return Character.toString((char)(data+'a'));
	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Main {
	int DATAKIND = 26;
	int[] count;
	public static void main(String[] args) 
	throws IOException{
		// TODO Auto-generated method stub
		new Main().run();
	}
	
	public Main(){
		count = new int[DATAKIND];
		for (int i=0; i<count.length; i++)
			count[i] = 0;
		
	}

	void run () 
		throws IOException{
		StandardIn buf = new StandardIn();
		
		ArrayList<String> al = buf.getlines(0);
		for(int i=0; i<al.size(); i++)
			countData(al.get(i).toCharArray());
		
		
		printResult(count);
	}
	
	private void printResult(int[] count){
		for(int i=0; i<count.length; i++)
			System.out.println(gethashkey(i)+" : "+count[i]);
	}
	private int[] countData(char[] data){

		for (int i=0; i<data.length; i++)
			if(Character.isAlphabetic(data[i]))
				count[hashdata(Character.toLowerCase(data[i]))] ++;
		
		return count;
	}
	
	private int hashdata(char data){
		return (int)(data-'a');
	}
	
	private String gethashkey(int data){
		return Character.toString((char)(data+'a'));
	}
}

class TempReaderCall{
	/*
	static ArrayList<String> getStdInReadlines(BufferedReader br, int line) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		for (int i = 0; i < line; i++)
			list.add(br.readLine());
		return list;
	}
	
	static ArrayList<String> getStdInReadlines(BufferedReader br, String end) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		String newdata;
		do{
			newdata =br.readLine();
			if (end.compareTo(newdata)==0)
				break;
			list.add(newdata);
		}while(newdata!=null);
		
		return list;
	}
	
	static String getStdInRead(BufferedReader br) throws IOException {
		return (br.readLine());
	}
	*/
	
	static int[] splitIntArrayFromString(String st) {
		String[] sts = st.split(" ");
		int[] data = new int[sts.length];
		
		for (int i=0;i<sts.length;i++){
			data[i] = Integer.parseInt(sts[i]);
		}
		
		return data;
	}
}

class StandardIn{
	private BufferedReader br;
	
	StandardIn(){
		br = new BufferedReader (new InputStreamReader(System.in));
	}
	
	ArrayList<String> getlines(int line) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		if (line==0){
			String tmplinedata;
			while(null != (tmplinedata = br.readLine())){
				list.add(tmplinedata);
			}
		}
		else {
			for (int i = 0; i < line; i++)
				list.add(br.readLine());
		}
		return list;
	}
	
	ArrayList<String> getlines(String end) throws IOException {
		ArrayList<String> list = new ArrayList<String>();
		String newdata;
		do{
			newdata =br.readLine();
			if (end.compareTo(newdata)==0)
				break;
			list.add(newdata);
		}while(newdata!=null);
		
		return list;
	}
	
	String getaline() throws IOException {
		return (br.readLine());
	}
}