Anton's favourite geometric figures are regular polyhedrons. Note that there are five kinds of regular polyhedrons: 

  * Tetrahedron. Tetrahedron has 4 triangular faces. 
  * Cube. Cube has 6 square faces. 
  * Octahedron. Octahedron has 8 triangular faces. 
  * Dodecahedron. Dodecahedron has 12 pentagonal faces. 
  * Icosahedron. Icosahedron has 20 triangular faces. 



All five kinds of polyhedrons are shown on the picture below:

<image>

Anton has a collection of n polyhedrons. One day he decided to know, how many faces his polyhedrons have in total. Help Anton and find this number!

Input

The first line of the input contains a single integer n (1 ≤ n ≤ 200 000) — the number of polyhedrons in Anton's collection.

Each of the following n lines of the input contains a string si — the name of the i-th polyhedron in Anton's collection. The string can look like this:

  * "Tetrahedron" (without quotes), if the i-th polyhedron in Anton's collection is a tetrahedron. 
  * "Cube" (without quotes), if the i-th polyhedron in Anton's collection is a cube. 
  * "Octahedron" (without quotes), if the i-th polyhedron in Anton's collection is an octahedron. 
  * "Dodecahedron" (without quotes), if the i-th polyhedron in Anton's collection is a dodecahedron. 
  * "Icosahedron" (without quotes), if the i-th polyhedron in Anton's collection is an icosahedron. 

Output

Output one number — the total number of faces in all the polyhedrons in Anton's collection.

Examples

Input

4
Icosahedron
Cube
Tetrahedron
Dodecahedron


Output

42


Input

3
Dodecahedron
Octahedron
Octahedron


Output

28

Note

In the first sample Anton has one icosahedron, one cube, one tetrahedron and one dodecahedron. Icosahedron has 20 faces, cube has 6 faces, tetrahedron has 4 faces and dodecahedron has 12 faces. In total, they have 20 + 6 + 4 + 12 = 42 faces.


import java.util.*;
import java.io.*;

 /*
 Although copied but copying snippet does'nt Gurantee AC :-) 
 ~~~~~~~~ ksj ~~~~~~~
 */

//Did I need Public ??????????????/ 

public class Prob {
    
  	 public static int max = (int) (1e9+7);
    
     public static void main(String[] args) {
        new Thread(null ,new Runnable(){
            public void run(){
                try{
                    solve();
                } catch(Exception e){
                    e.printStackTrace();
                }
            }
        },"1",1<<26).start();
    }

    public static long xl,yl,z1,al,bl,cl,dl,el;
    public static int x,y,z,a,b,c,d,e,T;
    
    public static ArrayList<Integer> factor[]=new ArrayList[100001];

   ///>>>>>	  |+++ START FROM  HERE BRO' 
   /// 
    public static void solve() {
 
        InputReader in = new InputReader(System.in);
        PrintWriter out = new PrintWriter(System.out);
        long count=0;
        T=in.nextInt();
        // Here we go ......................... ((((((be calm)))))) 
        while(T-->0){
        	String str=in.nextLine();
        	
        	if(str.equals("Tetrahedron")){count+=4;}
        	if(str.equals("Cube")){count+=6;}
        	if(str.equals("Icosahedron")){count+=20;}
        	if(str.equals("Dodecahedron")){count+=12;}
        	if(str.equals("Octahedron")){count+=8;}
        }
        
       
        out.println(""+count);
        out.close();
    }
    // for pair value use for i> adjecnt ii> weigth iii> cost

    static class Node {
    	int i,dis;
    	 Node(int i, int dis){
    		this.i=i; this.dis=dis;
    	} 
    }	

    public static Queue<Integer> q=new LinkedList<Integer>();

    //PriorityQueue p=new PriorityQueue<Integer>(capacity,comparable{necessary of want to customize})
    public static boolean v[]=new boolean[a];	
    public void Bfs(ArrayList<Integer> g[],int s,boolean v[]){
    	Arrays.fill(v,false);
    	q.add(s);
    	v[s]=false;
    	int t,size,t1;

    	while(!q.isEmpty()){
    		t=q.poll();
    		size=g[t].size();
    		for(int i=0;i<size;i++){
    					//mark its all adjecent...
    			if(v[g[t].get(i)]==false){
    				t1=g[t].get(i);
    				q.add(t1);

    			}
    		}
    	}


    }
/*------------------------------------------Pair ----------------------Modified ------------------------->>>>>>>>*/

    static class Pair implements Comparable<Pair>{
        int x,y,i;
        
	Pair (int x,int y,int i){
		this.x=x;
		this.y=y;
		this.i=i;
	}

	Pair (int x,int y){
		this.x=x;
		this.y=y;
	}
        
	public int compareTo(Pair o) {
		if(this.x!=o.x) return Integer.compare(this.x,o.x);
		else       return Integer.compare(this.y,o.y);
	}
 
	 public boolean equals(Object o) {
            if (o instanceof Pair) {
                Pair p = (Pair)o;
                return p.x == x && p.y == y && p.i==i;
            }
            return false;
    }
    public int hashCode() {
            return new Integer(x).hashCode() * 31 + new Integer(y).hashCode()+new Integer(i).hashCode()*37;
    }
    
    } 
 //>>>>>>>>>>>>>>>>>>>>>____________________________________________END

 //XXXXXXXXXXXXX Library funtion --------------- Don't Cheat :-> use ur's ________________________________   
    
     public void factor(){
    	//initialitation ...........

    	for(int i=1;i<100001;i++){factor[i]=new ArrayList<Integer>();}
    		factor[1].add(1);
    	for(int i=1;i<316;i++){
    		for(int j=2;j<100001;j+=i){
    			factor[j].add(i);
    		}
    	}
    }

    public static boolean isPol(String s){
        for(int i=0, j=s.length()-1;i<=j;i++,j--){
                if(s.charAt(i)!=s.charAt(j)) return false;
        }
        return true;
    }
    public static String rev(String s){
		StringBuilder sb=new StringBuilder(s);
		sb.reverse();
		return sb.toString();
    }
    
    public static long gcd(long x,long y){
	if(x%y==0)
		return y;
	else
		return gcd(y,x%y);
    }
    
    public static int gcd(int x,int y){
	if(x%y==0)
		return y;
	else 
		return gcd(y,x%y);
    }
    //_________________________________IMPO___________________________________
    public static long gcdExtended(long a,long b,long[] x){
        
        if(a==0){
            x[0]=0;
            x[1]=1;
            return b;
        }
        long[] y=new long[2];
        long gcd=gcdExtended(b%a, a, y);
        
        x[0]=y[1]-(b/a)*y[0];
        x[1]=y[0];
        
        return gcd;
    }
    //_________________________________________________________________________
    public static int abs(int a,int b){
	return (int)Math.abs(a-b);
    }
 
    public static long abs(long a,long b){
	return (long)Math.abs(a-b);
    }
    
    public static int max(int a,int b){
	if(a>b)
		return a;
	else
		return b;
    }
 
    public static int min(int a,int b){
	if(a>b)
		return b;
	else 
		return a;
    }
    
    public static long max(long a,long b){
	if(a>b)
		return a;
	else
		return b;
    }
 
    public static long min(long a,long b){
	if(a>b)
		return b;
	else 
		return a;
    }
 
    public static long pow(long n,long p,long m){
	 long  result = 1;
	  if(p==0)
	    return 1;
	if (p==1)
	    return n;
	while(p!=0)
	{
	    if(p%2==1)
	        result *= n;
	    if(result>=m)
	    result%=m;
	    p >>=1;
	    n*=n;
	    if(n>=m)
	    n%=m;
	}
	return result;
    }
    
    public static long pow(long n,long p){
	long  result = 1;
	  if(p==0)
	    return 1;
	if (p==1)
	    return n;
	while(p!=0)
	{
	    if(p%2==1)
	        result *= n;	    
	    p >>=1;
	    n*=n;	    
	}
	return result;
    }
     public static void debug(Object... o) {
		System.out.println(Arrays.deepToString(o));
	}
    //___________________________Fast-Input_Output-------------------******************* 
	static class InputReader {
 
		private final InputStream stream;
		private final byte[] buf = new byte[8192];
		private int curChar, snumChars;
		private SpaceCharFilter filter;
 
		public InputReader(InputStream stream) {
			this.stream = stream;
		}
 
		public int snext() {
			if (snumChars == -1)
				throw new InputMismatchException();
			if (curChar >= snumChars) {
				curChar = 0;
				try {
					snumChars = stream.read(buf);
				} catch (IOException e) {
					throw new InputMismatchException();
				}
				if (snumChars <= 0)
					return -1;
			}
			return buf[curChar++];
		}
 
		public int nextInt() {
			int c = snext();
			while (isSpaceChar(c)) {
				c = snext();
			}
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = snext();
			}
			int res = 0;
			do {
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = snext();
			} while (!isSpaceChar(c));
			return res * sgn;
		}
 
		public long nextLong() {
			int c = snext();
			while (isSpaceChar(c)) {
				c = snext();
			}
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = snext();
			}
			long res = 0;
			do {
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = snext();
			} while (!isSpaceChar(c));
			return res * sgn;
		}
 
		public int[] nextIntArray(int n) {
			int a[] = new int[n];
			for (int i = 0; i < n; i++) {
				a[i] = nextInt();
			}
			return a;
		}
 
		public long[] nextLongArray(int n) {
			long a[] = new long[n];
			for (int i = 0; i < n; i++) {
				a[i] = nextLong();
			}
			return a;
		}
                
		public String readString() {
			int c = snext();
			while (isSpaceChar(c)) {
				c = snext();
			}
			StringBuilder res = new StringBuilder();
			do {
				res.appendCodePoint(c);
				c = snext();
			} while (!isSpaceChar(c));
			return res.toString();
		}
 
		public String nextLine() {
			int c = snext();
			while (isSpaceChar(c))
				c = snext();
			StringBuilder res = new StringBuilder();
			do {
				res.appendCodePoint(c);
				c = snext();
			} while (!isEndOfLine(c));
			return res.toString();
		}
 
		public boolean isSpaceChar(int c) {
			if (filter != null)
				return filter.isSpaceChar(c);
			return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
		}
 
		private boolean isEndOfLine(int c) {
			return c == '\n' || c == '\r' || c == -1;
		}
 
		public interface SpaceCharFilter {
			public boolean isSpaceChar(int ch);
		}
	}
}    
//////////                              ~ BSS ittu sa hi hai :-)  ~



    