Polycarp is reading a book consisting of n pages numbered from 1 to n. Every time he finishes the page with the number divisible by m, he writes down the last digit of this page number. For example, if n=15 and m=5, pages divisible by m are 5, 10, 15. Their last digits are 5, 0, 5 correspondingly, their sum is 10.

Your task is to calculate the sum of all digits Polycarp has written down.

You have to answer q independent queries.

Input

The first line of the input contains one integer q (1 ≤ q ≤ 1000) — the number of queries.

The following q lines contain queries, one per line. Each query is given as two integers n and m (1 ≤ n, m ≤ 10^{16}) — the number of pages in the book and required divisor, respectively.

Output

For each query print the answer for it — the sum of digits written down by Polycarp.

Example

Input


7
1 1
10 1
100 3
1024 14
998244353 1337
123 144
1234312817382646 13


Output


1
45
153
294
3359835
0
427262129093995
import java.io.*;
import java.util.*;
public class Main {

	public static void main(String [] args)throws IOException
	{
		FastReader sc = new FastReader();
		int t = sc.nextInt();
		while(t-->0) {
			long n = sc.nextLong();
			long m = sc.nextLong();
			long endDigit = m%10;
			if (endDigit%2==0 && endDigit!=0) {
				long [] arr = new long[4];
				for (int i =1;i<=4;i++) {
					arr[i-1] = (endDigit*i)%10;
				}
				long div = n/m;
				long rem = div%5;
				long ans = 20*(div/5);
				for (int i =0;i<rem;i++) {
					ans+=arr[i];
				}
				System.out.println(ans);
			} else if (endDigit%2!=0 && endDigit!=5) {
				long [] arr = new long[10];
				for (int i =1;i<=10;i++) {
					arr[i-1] = (endDigit*i)%10;
				}
				long div = n/m;
				long rem = div%10;
				long ans = 45*(div/10);
				for (int i =0;i<rem;i++) {
					ans+=arr[i];
				}
				System.out.println(ans);
			} else if (endDigit==0) {
				System.out.println(0);
			} else if (endDigit==5) {
				long div = n/m;
				long rem = div%2;
				long ans = (div/2)*5 + rem*5;
				System.out.println(ans);
			}
		}
	}
	
	public static int gcd(int a,int b) 
	{
		
		if (a==0 || b==0)
			return 0;
		while(b!=0) {
			int temp = b;
			b = a%b;
			a = temp;
		}
		return a;
	}
	
	static class Pair implements Comparable<Pair>
	{
		int a,b;
		
		public Pair(int a,int b) {
			this.a = a;
			this.b = b;
		}
		
		public int compareTo(Pair p) {
			return this.a - p.a;
		}
	}
	
	public static long modMul (long a, long b, long mod) {
		long res = 0;  
        a = a % mod; 
        while (b > 0) 
        {  
            if (b % 2 == 1)  
            { 
                res = (res + a) % mod; 
            } 
  
            a = (a * 2) % mod; 
    
            b /= 2; 
        } 
  
        // Return result  
        return res % mod; 
	}
	
	static int power(int x, int y, int p) 
    { 
        int res = 1;      

        x = x % p;  
      
        while (y > 0) 
        { 

            if((y & 1)==1) 
                res = (res * x) % p; 

            y = y >> 1;  
            x = (x * x) % p;  
        } 
        return res; 
    }
	
}

 class FastReader
 {
	 
	 BufferedReader br;
	 StringTokenizer st;
	 
	public FastReader() 
	{
		 br = new BufferedReader(new InputStreamReader(System.in));
	}
	
	String next() 
	{
		while (st == null || !st.hasMoreElements())
        {
            try
            {
                st = new StringTokenizer(br.readLine());
            }
            catch (IOException  e)
            {
                e.printStackTrace();
            }
        }
        return st.nextToken();
	}
	
	int nextInt()
    {
        return Integer.parseInt(next());
    }

    long nextLong()
    {
        return Long.parseLong(next());
    }

    double nextDouble()
    {
        return Double.parseDouble(next());
    }

    String nextLine()
    {
        String str = "";
        try
        {
            str = br.readLine();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return str;
    }
	
}