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
from sys import stdin,stdout
from itertools import combinations
from collections import defaultdict
import math
import heapq

def listIn():
    return list((map(int,stdin.readline().strip().split())))

def stringListIn():
    return([x for x in stdin.readline().split()])
    
def intIn():
    return (int(stdin.readline()))

def stringIn():
    return (stdin.readline().strip())


if __name__=="__main__":
    n=intIn()
    a=listIn()
    A=[4,8,15,16,23,42]
    di={}
    di2={}
    for i in range(n):
        if a[i] not in di:
            di[a[i]]=1
            di2[a[i]]=[i]
        else:
            di2[a[i]].append(i)
            di[a[i]]+=1
            
    if n<6:
        print(n)
        exit(0)
    else:
        if len(di)==6:
            #print(di)
            #print(di2)
            b=di.values()
            m=min(b)
            arr=[0]*n
            t=0
            cnt=0
            arr=[0]*6
            f=0
            while(cnt<m):
                i=1
                while(i<6):
                    if arr[i]<di[A[i]]:
                        p1=di2[A[i]][arr[i]]
                    if arr[i-1]<di[A[i-1]]:
                        p2=di2[A[i-1]][arr[i-1]]
                    #print(p2,p1)
                    if p2<p1:
                        if arr[i-1]<di[A[i-1]]:
                            arr[i-1]+=1
                        else:
                            f=1
                            break
                        i+=1
                    else:
                        if arr[i]<di[A[i]]:
                            arr[i]+=1
                        else:
                            f=1
                            break
                if i==6:
                    cnt+=1
                    if arr[i-1]<di[A[i-1]]:
                        arr[i-1]+=1
                    else:
                        f=1
                        break
                    
                if f:
                    break
            #print(arr)    
            print(n-cnt*6)
            
        else:
            print(n)
            exit(0)
            
        
        
            
    
    
    
    
    