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:
"""
NTC here
"""


def iin(): return int(input())


def lin(): return list(map(int, input().split()))


def main():
    t = iin()
    while t:
        t-=1 
        n, s= input().split()
        s = int(s)
        n = list(map(int, n))
        sm = sum(n)
        ans = 0
        n = n[::-1]
        ch = 0
        pv = 0
        ln = len(n)
        pw = 0
        while sm>s:
            # pw = 0
            # for i in range(ln):
            #     if n[pw]<n[i]:
            #         pw = i
            if pw>=ln:break
            val = n[pw]
            if val==0:
                pw += 1
                continue
            ans +=  ( 10-val if val else 0)*pow(10, pw)
            n[pw] = 0
            pv = 1
            for j in range(pw+1, ln):
                if n[j] == 9:
                    n[j] = 0
                else:
                    n[j] += 1
                    break
            else:
                n.append(1)
                ln += 1
            sm = sum(n)
            pw += 1
            # print(n)
        print(ans)

main()