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.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Scanner;
import java.util.StringTokenizer;

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 nextDouble()
{
return Double.parseDouble(next());
}
String nextLine()
{
String str = "";
try
{
str = br.readLine();
}
catch (IOException e)
{
e.printStackTrace();
}
return str;
}
}

public static int search(double a[],double target,int n)
{
    int l=0,index=0,r=n-1,mid;
    
    while(r>=l)
    {
        mid=l+(r-l)/2;
        if(a[mid]<=target)
        {
            index=mid;
            r=mid-1;
        }
        else
            l=mid+1;
    }
    return index;
}
public static void main(String[] args)
{
   FastReader in = new FastReader();
   int test=in.nextInt();
   while(test-->0)
   {
       long n=in.nextLong();
       int s=in.nextInt();
       
       long temp=n,sum=0,d;
       while(n!=0)
       {
           d=n%10;
           sum+=d;
           n=n/10;
       }
       //System.out.println(sum);
       if(sum<=s)
           System.out.println(0);
       else
       {
       sum+=1;
       int c=1,ct=0;
       long t;
       long res=0;
       
           while(sum>s)
           {
               
               d=temp%(long)Math.pow(10,c);
               t=d/(long)Math.pow(10, ct++);
               //System.out.println(d+" "+t);
               sum-=t;
               
               res=(long)Math.pow(10, c++)-d;
           }
     System.out.println(res);
   }
   }
}
}