import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.util.Scanner;

public class Main {
  static InputReader in;
  static PrintWriter out;

 


  static class Solution {
    void solve() throws IOException {
      int[] cnt = new int[26];
      char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
                          'v','w','x','y','z'};
      Scanner sc = new Scanner(System.in);
      while (sc.hasNext()) {
        String word = sc.next(); 
        for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        }
        
      }
      for (int i = 0; i < 26; i++) {
        out.println(alphabet[i] + " : " + cnt[i]);
      }
//      End solve()
    }
//    End Solution
}


  public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
}


  static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

  }

} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.PrintWriter; PrintWriter java.io import java.util.StringTokenizer; StringTokenizer java.util import java.util.Scanner; Scanner java.util public class Main {
  static InputReader in;
  static PrintWriter out;

 


  static class Solution {
    void solve() throws IOException {
      int[] cnt = new int[26];
      char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
                          'v','w','x','y','z'};
      Scanner sc = new Scanner(System.in);
      while (sc.hasNext()) {
        String word = sc.next(); 
        for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        }
        
      }
      for (int i = 0; i < 26; i++) {
        out.println(alphabet[i] + " : " + cnt[i]);
      }
//      End solve()
    }
//    End Solution
}


  public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
}


  static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

  }

} Main static InputReader in; in static PrintWriter out; out public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
} main {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
} in = new InputReader(System.in) in new InputReader(System.in) out = new PrintWriter(System.out) out new PrintWriter(System.out) Solution solver = new Solution(); solver new Solution() solver.solve() solver.solve solver out.close() out.close out String[] args args static class Solution {
    void solve() throws IOException {
      int[] cnt = new int[26];
      char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
                          'v','w','x','y','z'};
      Scanner sc = new Scanner(System.in);
      while (sc.hasNext()) {
        String word = sc.next(); 
        for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        }
        
      }
      for (int i = 0; i < 26; i++) {
        out.println(alphabet[i] + " : " + cnt[i]);
      }
//      End solve()
    }
//    End Solution
} Solution void solve() throws IOException {
      int[] cnt = new int[26];
      char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
                          'v','w','x','y','z'};
      Scanner sc = new Scanner(System.in);
      while (sc.hasNext()) {
        String word = sc.next(); 
        for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        }
        
      }
      for (int i = 0; i < 26; i++) {
        out.println(alphabet[i] + " : " + cnt[i]);
      }
//      End solve()
    } solve {
      int[] cnt = new int[26];
      char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
                          'v','w','x','y','z'};
      Scanner sc = new Scanner(System.in);
      while (sc.hasNext()) {
        String word = sc.next(); 
        for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        }
        
      }
      for (int i = 0; i < 26; i++) {
        out.println(alphabet[i] + " : " + cnt[i]);
      }
//      End solve()
    } int[] cnt = new int[26]; cnt new int[26] 26 char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
                          'v','w','x','y','z'}; alphabet {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
                          'v','w','x','y','z'} 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z' Scanner sc = new Scanner(System.in); sc new Scanner(System.in) while (sc.hasNext()) {
        String word = sc.next(); 
        for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        }
        
      } sc.hasNext() sc.hasNext sc {
        String word = sc.next(); 
        for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        }
        
      } String word = sc.next(); word sc.next() sc.next sc for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        } int i = 0; int i = 0; i 0 i < word.length() i word.length() word.length word i++ i++ i {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        } {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        } for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          } int j = 0; int j = 0; j 0 j < 26 j 26 j++ j++ j {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          } {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          } if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            } alphabet[j] == word.toLowerCase().charAt(i) alphabet[j] alphabet j word.toLowerCase().charAt(i) word.toLowerCase().charAt word.toLowerCase() word.toLowerCase word i {
              cnt[j]++;
            } cnt[j]++ cnt[j] cnt j for (int i = 0; i < 26; i++) {
        out.println(alphabet[i] + " : " + cnt[i]);
      } int i = 0; int i = 0; i 0 i < 26 i 26 i++ i++ i {
        out.println(alphabet[i] + " : " + cnt[i]);
      } {
        out.println(alphabet[i] + " : " + cnt[i]);
      } out.println(alphabet[i] + " : " + cnt[i]) out.println out alphabet[i] + " : " + cnt[i] alphabet[i] + " : " + cnt[i] alphabet[i] alphabet i " : " cnt[i] cnt i static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

  } InputReader public BufferedReader br; br public StringTokenizer st; st public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    } InputReader {
      br = new BufferedReader(new InputStreamReader(stream));
    } br = new BufferedReader(new InputStreamReader(stream)) br new BufferedReader(new InputStreamReader(stream)) InputStream stream stream public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    } nextInt {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    } while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      } st == null || !st.hasMoreTokens() st == null st null !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st {
        st = new StringTokenizer(br.readLine());
      } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return Integer.parseInt(st.nextToken()); Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    } nextLong {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    } while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      } st == null || !st.hasMoreTokens() st == null st null !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st {
        st = new StringTokenizer(br.readLine());
      } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return Long.parseLong(st.nextToken()); Long.parseLong(st.nextToken()) Long.parseLong Long st.nextToken() st.nextToken st public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    } next {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    } while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      } st == null || !st.hasMoreTokens() st == null st null !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st {
        st = new StringTokenizer(br.readLine());
      } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return st.nextToken(); st.nextToken() st.nextToken st public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    } nextDouble {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    } while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      } st == null || !st.hasMoreTokens() st == null st null !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st {
        st = new StringTokenizer(br.readLine());
      } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return Double.parseDouble(st.nextToken()); Double.parseDouble(st.nextToken()) Double.parseDouble Double st.nextToken() st.nextToken st public class Main {
  static InputReader in;
  static PrintWriter out;

 


  static class Solution {
    void solve() throws IOException {
      int[] cnt = new int[26];
      char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
                          'v','w','x','y','z'};
      Scanner sc = new Scanner(System.in);
      while (sc.hasNext()) {
        String word = sc.next(); 
        for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        }
        
      }
      for (int i = 0; i < 26; i++) {
        out.println(alphabet[i] + " : " + cnt[i]);
      }
//      End solve()
    }
//    End Solution
}


  public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
}


  static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

  }

} public class Main {
  static InputReader in;
  static PrintWriter out;

 


  static class Solution {
    void solve() throws IOException {
      int[] cnt = new int[26];
      char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
                          'v','w','x','y','z'};
      Scanner sc = new Scanner(System.in);
      while (sc.hasNext()) {
        String word = sc.next(); 
        for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        }
        
      }
      for (int i = 0; i < 26; i++) {
        out.println(alphabet[i] + " : " + cnt[i]);
      }
//      End solve()
    }
//    End Solution
}


  public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
}


  static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

  }

} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.util.Scanner;

public class Main {
  static InputReader in;
  static PrintWriter out;

 


  static class Solution {
    void solve() throws IOException {
      int[] cnt = new int[26];
      char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u',
                          'v','w','x','y','z'};
      Scanner sc = new Scanner(System.in);
      while (sc.hasNext()) {
        String word = sc.next(); 
        for (int i = 0; i < word.length(); i++) {
          for (int j = 0; j < 26; j++) {            
            if(alphabet[j] == word.toLowerCase().charAt(i)) {
              cnt[j]++;
            }
          }
        }
        
      }
      for (int i = 0; i < 26; i++) {
        out.println(alphabet[i] + " : " + cnt[i]);
      }
//      End solve()
    }
//    End Solution
}


  public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
}


  static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

  }

}