Problem: You are given a positive integer n. In one move, you can increase n by one (i.e. make n := n + 1). Your task is to find the minimum number of moves you need to perform in order to make the sum of digits of n be less than or equal to s.

You have to answer t independent test cases.

Input

The first line of the input contains one integer t (1 ≤ t ≤ 2 ⋅ 10^4) — the number of test cases. Then t test cases follow.

The only line of the test case contains two integers n and s (1 ≤ n ≤ 10^{18}; 1 ≤ s ≤ 162).

Output

For each test case, print the answer: the minimum number of moves you need to perform in order to make the sum of digits of n be less than or equal to s.

Example

Input


5
2 1
1 1
500 4
217871987498122 10
100000000000000001 1


Output


8
0
500
2128012501878
899999999999999999

Solution (in JAVA):

Solution:
import java.util.*;
import java.io.*;
public class MyClass {
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 nextDouble() 
        { 
            return Double.parseDouble(next()); 
        } 
  
        String nextLine() 
        { 
            String str = ""; 
            try
            { 
                str = br.readLine(); 
            } 
            catch (IOException e) 
            { 
                e.printStackTrace(); 
            } 
            return str; 
        } 
    } 
    
    static int sum(String str)
    {
        int sum1=0,asc=0;
        for(int i=0;i<str.length();i++)
        {
            char ch=str.charAt(i);
            asc=(int)ch;
            asc-=48;
            sum1+=asc;
        }
        return sum1;
    }
    public static void main(String args[]) 
{
	FastReader s1=new FastReader();int t=0,s=0,beg=0,asc=0,getsum=0;long n=0;String fstr="",ans="",dstr="";char val=' ';
     //Scanner in=new Scanner(System.in);
     //if(in.hasNext())
     t=s1.nextInt();
     for(int j=0;j<t;j++)
     {
      //   if(in.hasNext())
         n=s1.nextLong();
         s=s1.nextInt();
         String str=Long.toString(n);
         getsum=sum(str);
         //System.out.println("getsum="+getsum);
         if(getsum<=s)
         System.out.println(0);
         else
         {
         beg=str.length()-1;
         char array[]=str.toCharArray();
         //System.out.println("beg="+beg);
         //System.out.println(Arrays.toString(array));
         ans="";
             while(beg>=0)
             {
                 String str1=String.valueOf(array);
                 //System.out.println("=========str1="+str1+" ---------");
                 if(sum(str1)<=s)
                 {
                     //dst=str1;
                     break;
                 }
                 else
                 {

                     if(array[beg]=='0')
                     {
                         beg--;continue;
                     }
                     else if(array[beg]=='9')
                     {
                         while(beg>=0 && array[beg]=='9')
                         {
                             array[beg]='0';
                             beg--;
                         }
                         if(beg<0)
                         {ans="1"+String.valueOf(array);break;}
                         else
                         {
                             val=array[beg];
                             asc=(int)val;
                             asc++;
                             array[beg]=(char)asc;
                         }
                     }
                     else
                     {
                         array[beg]='0';
                         beg--;
                         
                        
                         if(beg<0)
                         {ans="1"+String.valueOf(array);break;}
                         else
                         {
                              if(array[beg]=='9')
                         {
                            while(beg>=0 && array[beg]=='9')
                             {
                                 array[beg]='0';
                                 beg--;
                             }
                         }
                            if(beg<0)
                            {ans="1"+String.valueOf(array);break;}
                            else
                            {
                             val=array[beg];
                             asc=(int)val;
                             asc++;
                             array[beg]=(char)asc;
                            }
                         }
                     }
                 }
             }
             if(ans.equals("")==false)
             dstr=ans;
             else
             dstr=String.valueOf(array);
             long l1=Long.parseLong(dstr);
             System.out.println(l1-n);
         }
     }
    }
}