Petya is having a party soon, and he has decided to invite his n friends.

He wants to make invitations in the form of origami. For each invitation, he needs two red sheets, five green sheets, and eight blue sheets. The store sells an infinite number of notebooks of each color, but each notebook consists of only one color with k sheets. That is, each notebook contains k sheets of either red, green, or blue.

Find the minimum number of notebooks that Petya needs to buy to invite all n of his friends.

Input

The first line contains two integers n and k (1≤ n, k≤ 10^8) — the number of Petya's friends and the number of sheets in each notebook respectively.

Output

Print one number — the minimum number of notebooks that Petya needs to buy.

Examples

Input


3 5


Output


10


Input


15 6


Output


38

Note

In the first example, we need 2 red notebooks, 3 green notebooks, and 5 blue notebooks.

In the second example, we need 5 red notebooks, 13 green notebooks, and 20 blue notebooks.
import java.util.*;
import java.io.*;



public class Main
{

	public static int gcd(int a , int b)
	{
		int divs=0;
		int divd=0;
		if(a>=b)
		{
			divd=a;
			divs=b;
		}
		else
		{
			divd=b;
			divs=a;
		}

		int rem=divd%divs;
		while(rem!=0)
		{
			int temp=divs;
			divs=rem;
			divd=temp;
			rem=divd%divs;
		}
		return divs;

	}
	static class spComp implements Comparator<long[]>
	{
		public int compare(long[] a, long[] b)
		{
			
			if(a[0]>b[0])
				return 1;
			else if(a[0]<b[0])
				return -1;
			else if(a[1]>b[1])
				return 1;
			else if(a[1]>b[1])
				return -1;
			else return 1;
		}
	}

	static class stringComp implements Comparator<String>
	{
		public int compare(String a, String b)
		{
			
			return a.length()-b.length();
		}
	}

	class unionFind
	{

		int parent[];
		int height[];
		int size=0;
		unionFind(int n)
		{
			size=n;
			parent = new int[n];
			height = new int[n];
			// Arrays.fill(parent, -1);
			for(int i=0;i<n;i++)
				parent[i]=i;

		}
		int find(int a)
		{
			if(parent[a]==a)
				return a;

			parent[a]=find(a);

			return parent[a];
		}

		void add(int a, int b)
		{
			a = find(a);
			b = find(b);
			
			if(height[a] > height[b])
			{
				parent[b] = a;
			}
			else if(height[ b ] > height[ a ])
				parent[ a ] = b;
			else if(height[ a ] == height[ b ])
			{
				height[ a ] = height[ a ]+1;
				parent[ b ] = a;
			}


		}
	}


	static boolean prefix(String a, String b)
	{
		if(a.length()>b.length())
			return false;
		if(a.length()==b.length() && a.compareTo(b)!=0)
			return false;
		if(a.length()==b.length() && a.compareTo(b)==0)
			return true;

		int n= a.length();
		for(int i=0;i<n;i++)
		{
			if(a.charAt(i)!=b.charAt(i))
			{
				return false;
			}
		}
		return true;
	}

	public static void main(String args[])
	{
		Scanner sc= new Scanner(System.in);
		int n= sc.nextInt();
		int k= sc.nextInt();
		int red= (int)Math.ceil(2.0*n/(k*1.0));
		int green= (int)Math.ceil(5.0*n/(k*1.0));
		int blue= (int)Math.ceil(8.0*n/(k*1.0));
		int ans= green+red+ blue;
		System.out.println(ans);

	}



}








