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
    //  package com.company;
        import java.io.BufferedReader;
        import java.io.IOException;
        import java.util.*;import java.io.InputStreamReader;

        public class Main{
            static 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  doublenextDouble()
                {
                    return Double.parseDouble(next());
                }

                String nextLine()
                {
                    String str = "";
                    try
                    {
                        str = br.readLine();
                    }
                    catch (IOException e)
                    {
                        e.printStackTrace();
                    }
                    return str;
                }
            }
            static int n;static long x=0;static int m;
            private static int max=Integer.MIN_VALUE;static long ans=Long.MIN_VALUE;
            private static  LinkedList<Integer> adj[];private static LinkedList<Integer> g1=new LinkedList<Integer>();private static LinkedList<Integer> l=new LinkedList<Integer>();
            public static void main(String[] args){
                FastReader s=new FastReader();StringBuilder sb=new StringBuilder();
    //    int n=s.nextInt();//Queue<Integer>[] q=new LinkedList[1000000];
      //int n=s.nextInt();//char[]a=s.next().toCharArray();char[] b=s.next().toCharArray();
//      Stack<Integer> qa=new Stack<Integer>();Stack<Integer> qb=ne&&w Stack<Integer>();
                int q=s.nextInt();
                while(q-->0){
                long n=s.nextLong();
                ans=0L;
                long m=s.nextLong();int c=0;x=0L;
              for(long i=m;i<=m*10;){
                  x+=i%10;
                  i+=m;
              }
                     ans=n/(m*10)*x;

              if(n%(m*10)!=0){
                  for(long i=n-n%(m*10)+m;i<=n;i+=m){
                      if(i%m==0) ans+=i%10;
                  }
              }
                    System.out.println(ans);
                }}
      }



