Try guessing the statement from this picture <http://tiny.cc/ogyoiz>.

You are given two integers A and B, calculate the number of pairs (a, b) such that 1 ≤ a ≤ A, 1 ≤ b ≤ B, and the equation a ⋅ b + a + b = conc(a, b) is true; conc(a, b) is the concatenation of a and b (for example, conc(12, 23) = 1223, conc(100, 11) = 10011). a and b should not contain leading zeroes.

Input

The first line contains t (1 ≤ t ≤ 100) — the number of test cases.

Each test case contains two integers A and B (1 ≤ A, B ≤ 10^9).

Output

Print one integer — the number of pairs (a, b) such that 1 ≤ a ≤ A, 1 ≤ b ≤ B, and the equation a ⋅ b + a + b = conc(a, b) is true.

Example

Input


3
1 11
4 2
191 31415926


Output


1
0
1337

Note

There is only one suitable pair in the first test case: a = 1, b = 9 (1 + 9 + 1 ⋅ 9 = 19).
import java.util.*;
import java.util.Map.Entry;
import java.io.*;
        public class uu {
        	static int []min,max;
        	public static void main(String[] args) throws IOException {
        		Scanner sc =new Scanner(System.in);
        		PrintWriter pw =new PrintWriter(System.out);
        		int t=sc.nextInt();
        		while (t-->0) {
        			long a=sc.nextLong(),b=sc.nextLong();
        			int size=(b+"").length();
        			int sizeb=size;
        			int tt=size;
        			long res=0;
        			long s=0,p=0;
        			for (int i=0;i<size;++i)
        				s+=(9*Math.pow(10, i));
        			if (s>b)
        				--size;
        			pw.println(size*a);
//        			for (int i =0;i<size;++i)
//        				p+=(1*Math.pow(10, i));
//        			if (s>b)
//        				size--;
//        			if (p>b)
//        				--tt;
//        			System.out.println(p+" "+s);
//        			int size2=(a+"").length();
//        			int sizea=size2;
//        			int r=size2;
//        			s=0;
//        			p=0;
//        			for (int i=0;i<size2;++i)
//        				s+=(9*Math.pow(10, i));
//        			for (int i =0;i<size2;++i)
//        				p+=(1*Math.pow(10, i));
//        			if (s>a)
//        				--r;
//        			if (p>a)
//        				--size2;
//        			System.out.println(tt+" "+size+" "+r+" "+size2);
//        			res=(long)size*(long)(size2)+(size*r)*2+(tt*r)+(sizea*size)+(sizeb*r);
        	//		System.out.println(res);
        		}
          		pw.close();
        	}
    		static long gcd(long a, long b) 
    		{ 
    		    if (a == 0) 
    		        return b; 
    		    return gcd(b % a, a); 
    		}
			static class Scanner {
				StringTokenizer stringTokenizer;
				BufferedReader bfBufferedReader;
				public Scanner(InputStream system) {
					bfBufferedReader=new BufferedReader(new InputStreamReader( system));
				}
				 public Scanner(String file) throws Exception {
			            bfBufferedReader = new BufferedReader(new FileReader( file));
			        }			 
			        public String next() throws IOException {
			            while (stringTokenizer == null || !stringTokenizer.hasMoreTokens())
			                stringTokenizer = new StringTokenizer( bfBufferedReader.readLine());
			            return stringTokenizer.nextToken();
			        }
			 
			        public String nextLine() throws IOException {
			            return bfBufferedReader.readLine();
			        }
			 
			        public int nextInt() throws IOException {
			            return Integer.parseInt(next());
			        }
			 
			        public double nextDouble() throws IOException {
			            return Double.parseDouble(next());
			        }
			 
			        public char nextChar() throws IOException {
			            return next().charAt(0);
			        }
			 
			        public Long nextLong() throws IOException {
			            return Long.parseLong(next());
			        }
			 
			        public boolean ready() throws IOException {
			            return bfBufferedReader.ready();
			        }
			 
			        public void waitForInput() throws InterruptedException {
			            Thread.sleep(3000);
			        }
			    }
			public static void print(long [][]d) {
				for (int i=0;i<d.length;++i)
					System.out.println(Arrays.toString(d[i]));
			}
        }