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:


def solve():
  n ,s = [str(i) for  i in input().split(' ')]
  s = int(s)
  count = 0 
  ans = ""

  cum = sum(int(i) for i in n)
  if cum <= s:
    print(0)
    return 

  if int(n[0]) >= s: 
    if(int(n[0]) == s and len(n) ==1):
      print(0)
      return  
    ans = "10"+"0"*len(n[1:])
    # print("fdsfd", int(ans), int(n))
    print(int(ans) - int(n) )
    return 

  
  
  for idx,  i in enumerate(n):
    
    count += int(i)
    if idx == len(n)-1 and count <= s:
      print(0)
      return 
    if count >= s: 
      ans = str(int(n[:idx]) + 1 ) + "0"*(len(n) - idx  )
      # print("fdsfd", int(ans), int(n))
      print(int(ans)-int(n))
      return 
  print(0)


def main(): 
  tc = int(input().strip())
  for c in range(tc):
    solve()

    
          



    
    




  

main()