You are given an array a consisting of n integers. Each a_i is one of the six following numbers: 4, 8, 15, 16, 23, 42.

Your task is to remove the minimum number of elements to make this array good.

An array of length k is called good if k is divisible by 6 and it is possible to split it into k/6 subsequences 4, 8, 15, 16, 23, 42.

Examples of good arrays:

  * [4, 8, 15, 16, 23, 42] (the whole array is a required sequence); 
  * [4, 8, 4, 15, 16, 8, 23, 15, 16, 42, 23, 42] (the first sequence is formed from first, second, fourth, fifth, seventh and tenth elements and the second one is formed from remaining elements); 
  * [] (the empty array is good). 



Examples of bad arrays: 

  * [4, 8, 15, 16, 42, 23] (the order of elements should be exactly 4, 8, 15, 16, 23, 42); 
  * [4, 8, 15, 16, 23, 42, 4] (the length of the array is not divisible by 6); 
  * [4, 8, 15, 16, 23, 42, 4, 8, 15, 16, 23, 23] (the first sequence can be formed from first six elements but the remaining array cannot form the required sequence). 

Input

The first line of the input contains one integer n (1 ≤ n ≤ 5 ⋅ 10^5) — the number of elements in a.

The second line of the input contains n integers a_1, a_2, ..., a_n (each a_i is one of the following numbers: 4, 8, 15, 16, 23, 42), where a_i is the i-th element of a.

Output

Print one integer — the minimum number of elements you have to remove to obtain a good array.

Examples

Input


5
4 8 15 16 23


Output


5


Input


12
4 8 4 15 16 8 23 15 16 42 23 42


Output


0


Input


15
4 8 4 8 15 16 8 16 23 15 16 4 42 23 42


Output


3
/* package whatever; // don't place package name! */

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

/* Name of the class has to be "Main" only if the class is public. */
public class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		// your code goes here
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		HashMap<Integer,Integer> map=new HashMap<>();
		int[] p=new int[6];
		int[] b=new int[n];
		for(int i=0;i<n;i++){
			int x=sc.nextInt();
			b[i]=x;
			p[ri(x)]++;
		}
		int[][] a=new int[6][];
		for(int i=0;i<6;i++){
			a[i]=new int[p[i]];
		}
		p=new int[6];
		for(int i=0;i<n;i++){
			a[ri(b[i])][p[ri(b[i])]++]=i;
		}
		// for(int i=0;i<a.length;i++){
			// System.out.println(Arrays.toString(a[i]));
		// }
		p=new int[6];
		int ans=n;
A:		while(true){
			for(int i=1;i<6;i++){
				if(p[i]>=a[i].length)break A;
				// System.out.println(a[i][p[i]]+" hi "+a[i-1][p[i-1]]);
				if(a[i][p[i]]>a[i-1][p[i-1]]){
					continue;
				}
				else {
					p[i]++;
					i--;
				}
			}
			for(int i=0;i<6;i++)p[i]++;
			ans-=6;
		}
		System.out.println(ans);
	}
	public static int ri(int x){
		if(x==4)return 0;
		if(x==8)return 1;
		if(x==15)return 2;
		if(x==16)return 3;
		if(x==23)return 4;
		if(x==42)return 5;
		return -1;
	}
}