After finishing eating her bun, Alyona came up with two integers n and m. She decided to write down two columns of integers — the first column containing integers from 1 to n and the second containing integers from 1 to m. Now the girl wants to count how many pairs of integers she can choose, one from the first column and the other from the second column, such that their sum is divisible by 5.

Formally, Alyona wants to count the number of pairs of integers (x, y) such that 1 ≤ x ≤ n, 1 ≤ y ≤ m and <image> equals 0.

As usual, Alyona has some troubles and asks you to help.

Input

The only line of the input contains two integers n and m (1 ≤ n, m ≤ 1 000 000).

Output

Print the only integer — the number of pairs of integers (x, y) such that 1 ≤ x ≤ n, 1 ≤ y ≤ m and (x + y) is divisible by 5.

Examples

Input

6 12


Output

14


Input

11 14


Output

31


Input

1 5


Output

1


Input

3 8


Output

5


Input

5 7


Output

7


Input

21 21


Output

88

Note

Following pairs are suitable in the first sample case: 

  * for x = 1 fits y equal to 4 or 9; 
  * for x = 2 fits y equal to 3 or 8; 
  * for x = 3 fits y equal to 2, 7 or 12; 
  * for x = 4 fits y equal to 1, 6 or 11; 
  * for x = 5 fits y equal to 5 or 10; 
  * for x = 6 fits y equal to 4 or 9. 



Only the pair (1, 4) is suitable in the third sample case.
import java.util.*;
import java.util.concurrent.ArrayBlockingQueue;
import java.io.*;
public class A 
{
	public static void main(String[] args)
	{
		new A().solve();
	}

	FasterScanner in=new FasterScanner();
	PrintWriter out=new PrintWriter(System.out);

	long mod=(int)1e9+7;
	public void solve()
	{
//    	int tt=in.nextInt();
//    	for(int ii=0;ii<tt;ii++)
		{
			int n=in.nextInt();
			int m=in.nextInt();
			long[] a1 = new long[5];
			long[] a2 = new long[5];
			for(int i=0;i<5;i++)
			{
				a1[i]=n/5;
			}
			for(int i=0;i<5;i++)
			{
				a2[i]=m/5;
			}
			n=n%5;
			m=m%5;
			for(int i=1;i<=n;i++)
			{
				a1[i]++;
			}
			for(int i=1;i<=m;i++)
			{
				a2[i]++;
			}
			long ans=0;
			for(int i=1;i<5;i++)
			{
				ans += a1[i]*a2[5-i];
			}
			ans+=a1[0]*a2[0];
				out.println(ans);
		}
		out.close();
	}

	class segTree
	{
		int n;
		S[] val;
	
		public segTree(S[] arr)
		{
			n=arr.length;
			val=new S[3*n];
			for(int i=0;i<arr.length;i++)
			{
				val[i+n]=arr[i];
			}
			build();
		}
		
		void build() 
		{  
			for (int i = n - 1; i > 0; --i)
			{
				//t[i] = t[i<<1] + t[i<<1|1];
				//merge(i,i<<1,i<<1|1);
				val[i]=merge(val[i<<1],val[i<<1|1]);
			}
		}
		
		void modify(int p, S s)
		{  
			val[p+n]=s;
			for (p=p+n; (p >>= 1)!=0; )
			{
				val[p]=merge(val[p<<1],val[p<<1|1]);
			}
		}

		S query(int l, int r) 
		{  
			S resl = null,resr=null;
			for (l += n, r += n; l < r; l >>= 1, r >>= 1)
			{
				if ((l&1)!=0)
				{
					resl=merge(resl,val[l]);
					l++;
				}
				if ((r&1)!=0)
				{
					--r;
					resr=merge(val[r],resr);
				}
			}
			return merge(resl,resr);
		}
		
		//Write merge method As per requienment
		public S merge(S a1,S a2)
		{
//			return null;//please remove it
			if(a1 == null && a2 == null)
				return null;
			if(a1==null && a2!=null)
				return a2;
			if(a1!=null && a2==null)
				return a1;

			S a=new S();
			if(a1.val>a2.val)
			{
				a.val=a2.val;
				a.idx=a2.idx;
			}
			else if(a2.val>a1.val)
			{
				a.val=a1.val;
				a.idx=a1.idx;
			}
			else
			{
				a.idx=Math.min(a1.idx,a2.idx);
				a.val=a1.val;
			}
			return a;	
		}
	}
	
	class S
	{
		int idx;
		char val;		
		public S(){};
		public S(char v,int i)
		{
			this.val=v;
			this.idx=i;
		}
	}

	int[][] arr;
	int[][] visit;
	int[] ans;
	int cur;

	void dfs(int x,int y)
	{
		try
		{
			if(x<0 || x>=arr.length || y<0 || y>=arr[0].length)
			{
				return;
			}
			if(arr[x][y]==0)
			{
				return;
			}
			if(visit[x][y]!=0)
			{
				return;
			}

			visit[x][y]=cur;
			ans[cur]++;

			dfs(x-1,y-1);
			dfs(x-1,y);
			dfs(x-1,y+1);
			dfs(x,y-1);
			dfs(x,y+1);
			dfs(x+1,y-1);
			dfs(x+1,y);
			dfs(x+1,y+1);
		}
		catch(Exception e)
		{
			return ;
		}
	}


	class Edge
	{
		int nextv;
		int r;
		int t;
		public Edge(int ver,int r,int t)
		{
			this.nextv=ver;
			this.r=r;
			this.t=t;
		}
	}
	
	public static class FasterScanner {
		private byte[] buf = new byte[1024];
		private int curChar;
		private int numChars;
		public int read() {
			if (numChars == -1)
				throw new InputMismatchException();
			if (curChar >= numChars) {
				curChar = 0;
				try {
					numChars = System.in.read(buf);
				} catch (IOException e) {
					throw new InputMismatchException();
				}
				if (numChars <= 0)
					return -1;
			}
			return buf[curChar++];
		}
		public String nextLine() {
			int c = read();
			while (isSpaceChar(c))
				c = read();
			StringBuilder res = new StringBuilder();
			do {
				res.appendCodePoint(c);
				c = read();
			} while (!isEndOfLine(c));
			return res.toString();
		}
		private boolean isEndOfLine(int c) {
			return c=='\n' || c=='\r' || c==-1;
		}
		public String nextString() {
			int c = read();
			while (isSpaceChar(c))
				c = read();
			StringBuilder res = new StringBuilder();
			do {
				res.appendCodePoint(c);
				c = read();
			} while (!isSpaceChar(c));
			return res.toString();
		}
		private boolean isSpaceChar(int c) {
			return c=='\n' || c=='\r' || c==-1 || c==' ' || c=='\t';
		}
		public long nextLong() {
			int c = read();
			while (isSpaceChar(c))
				c = read();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = read();
			}
			long res = 0;
			do {
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = read();
			} while (!isSpaceChar(c));
			return res * sgn;
		}
		public int nextInt() {
			int c = read();
			while (isSpaceChar(c))
				c = read();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = read();
			}

			int res = 0;
			do {
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = read();
			} while (!isSpaceChar(c));
			return res * sgn;
		}
		public double nextDouble()
		{
			return Double.parseDouble(nextString());
		}
		public int[] nextIntArray(int n)
		{
			int[] arr=new int[n];
			for(int i=0;i<n;i++)
			{
				arr[i]=nextInt();
			}
			return arr;
		}
		public long[] nextLongArray(int n)
		{
			long[] arr=new long[n];
			for(int i=0;i<n;i++)
			{
				arr[i]=nextLong();
			}
			return arr;
		}
		public int[] nextIntArray10(int n)
		{
			int[] arr=new int[n+1];
			for(int i=1;i<=n;i++)
			{
				arr[i]=nextInt();
			}
			return arr;
		}
		public long[] nextLongArray10(int n)
		{
			long[] arr=new long[n+1];
			for(int i=1;i<=n;i++)
			{
				arr[i]=nextLong();
			}
			return arr;
		}
		public int[] nextIntArray11(int n)
		{
			int[] arr=new int[n+2];
			for(int i=1;i<=n;i++)
			{
				arr[i]=nextInt();
			}
			return arr;
		}
		public long[] nextLongArray11(int n)
		{
			long[] arr=new long[n+2];
			for(int i=1;i<=n;i++)
			{
				arr[i]=nextLong();
			}
			return arr;
		}
	}

}