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.security.spec.RSAOtherPrimeInfo;
import java.util.*;

public class Water {
    static BufferedReader in;

    public static void solve() throws IOException {
        int t = nextInt();
        while(t-->0){
            StringTokenizer st = new StringTokenizer(in.readLine());
            long n = Long.parseLong(st.nextToken());
            long m = Long.parseLong(st.nextToken());

            long steps = (long)Math.ceil(n/m);

//            System.out.println("Steps req"+steps);

            List<Long> list = new ArrayList<>();
            long stepCount = 0;
            for(long i = m ;i<=n && i >= 1 && !list.contains(i%10)  ; i+=m){

                list.add(i%10);
                stepCount++;
            }

//            System.out.println(list);
//            System.out.println("step Count = "+stepCount);

            long sum = 0;
            for(long l : list)
                sum+=l;

            if(stepCount == steps){
                System.out.println(sum);
                continue;
            }

            long size = list.size();
            long iterationLeft = (steps- stepCount)/size;

//            System.out.println("Iterations left = " + iterationLeft);

            long ans = (1+iterationLeft)*sum;
            stepCount= stepCount + (iterationLeft)*size;

            int i = 0;
            while(stepCount++ != steps)
                ans+=list.get(i++);


            System.out.println(ans);









//            long sum = 0;
//            long i = 1;
//            while(i%m != 0)
//                i++;
//
//            for(;i<=n;i+=m){
//                sum+=i%10;
//            }
//
//            System.out.println(sum);



        }




    }

    public static void main(String[] args) throws IOException {
        in = new BufferedReader(new InputStreamReader(System.in));
        solve();
    }

    static int nextInt() throws IOException {
        return Integer.parseInt(in.readLine().trim());

    }

    static long nextLong() throws IOException {
        return Long.parseLong(in.readLine().trim());
    }

    static Integer[] nextArray(int n) throws IOException {
        StringTokenizer st = new StringTokenizer(in.readLine());
        Integer[] tmp = new Integer[n];
        for (int i = 0; i < tmp.length; i++) {
            tmp[i] = Integer.parseInt(st.nextToken());
        }

        return tmp;
    }

    static Integer[] nextLinesArray(int n) throws IOException {
        StringTokenizer st;
        Integer[] tmp = new Integer[n];
        for (int i = 0; i < n; i++) {
            st = new StringTokenizer(in.readLine().trim());
            tmp[i] = Integer.parseInt(st.nextToken());
        }

        return tmp;
    }

}

