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 PYTHON3):

Solution:
######################################################
############Created by Devesh Kumar###################
#############devesh1102@gmail.com####################
##########For CodeForces(Devesh1102)#################
#####################2020#############################
######################################################
import sys
input = sys.stdin.readline
 
# import sys
import heapq 
import copy
import math
import decimal
 
# import sys.stdout.flush as flush
# from decimal import *
#heapq.heapify(li) 
#
#heapq.heappush(li,4) 
#
#heapq.heappop(li)
#
# &    Bitwise AND Operator    10 & 7 = 2
# |    Bitwise OR Operator    10 | 7 = 15
# ^    Bitwise XOR Operator    10 ^ 7 = 13
 
# <<    Bitwise Left Shift operator    10<<2 = 40
# >>    Bitwise Right Shift Operator
# '''############ ---- Input Functions ---- #######Start#####'''
 
 
def inp():
    return(int(input()))
def inlt(): 
    return(list(map(int,input().split())))
def insr():
    s = input()
    return(list(s[:len(s) - 1]))
def insr2():
    s = input()
    return((s[:len(s) - 1]))
def invr():
    return(map(int,input().split()))
############ ---- Input Functions ---- #######End
# #####   
 

ans = 0
def pr_list(a):
    print( *a , sep=" ")

def swap(a,b):
    temp = a
    a = b
    b = temp
    return [ a,b]
    # return [b,a]
def main():
    tests =  inp()
    # tests = 1
    mod = 1000000007
    limit = 10**18
    ans = 0
    stack = []
    hashm = {}
    arr = []
    heapq.heapify(arr) 

    def summer(aa):
        ans = 0
        a = copy.deepcopy(aa)
        while(a!=0):
            ans= ans + a%10
            a = a//10
        return ans
        
    for test in range(tests):
        [n,s] = inlt()
        # diff = summer(n) - s
        # print(diff)
        arr =[]
        while(n!= 0):
            arr.append(n%10)
            n = n//10
        if sum(arr)<=s:
            print(0)
            continue
        arr.reverse()
        i = 0
        sums=  0
        while(sums< s):
            sums = sums + arr[i]
            if sums>= s:
                break
            i = i + 1
        
        f = 0
        r = 1
        while(i < len(arr)):
            f = f*10 + arr[i]
            r = r * 10
            i= i +1
        # print(f,r)
        print(r - f)

       


        


if __name__== "__main__":
    main()