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

Solution:
import sys
input = lambda : sys.stdin.readline().rstrip()

def answer():
    s, limit = input().split(" ")
    len_s = len(s)
    limit = int(limit)

    sd = 0
    for c in s:
        sd += int(c)
    if sd <= limit:
        print(0)
        return
    
    cur = 0
    for i, c in enumerate(s):
        cur_kouho = cur + int(c)
        if cur_kouho >= limit:
            #if c == "9":
            ok_kosuu = i
            break
        cur = cur_kouho

    if ok_kosuu == 0:
        goal = int("1" + "0" * len_s)
    else:
        #if s[ok_kosuu] == "9":
        #    if n - cur >= 2:
        #        goal_str = s[:ok_kosuu-1] + str(int(s[ok_kosuu-1])+1) + "0" * (len_s - ok_kosuu)
        #else:
        if s[ok_kosuu-1] == "9":
            val1_str = str(int(s[:ok_kosuu]) + 1)
            val2_str = "0" * (len_s - ok_kosuu)
            goal_str = val1_str + val2_str
        else:
            goal_str = s[:ok_kosuu-1] + str(int(s[ok_kosuu-1])+1) + "0" * (len_s - ok_kosuu)
        goal = int(goal_str)

    diff = goal - int(s)
    print(diff)

  
if __name__ == "__main__":
    nn = int(input())
    for i in range(nn):
        answer()