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:
"""
Le but de ce problème est le suivant étant donné n et s entier, trouvé le nombre minimale d'addition de 1 à faire à n afin que la somme de ses digits soit inférieur ou égal à s. (s>=1)

Pour ne pas avoir à recalculer les digits de n on le garde sous la forme d'un string

Ce qui coute le moins cher est de modifier les digits de poids faible de n.
On note n = Sigma a_i (i=0 jusqu'a r)  * 10 ** i

Attention au propagation de retenu
"""

def solution(str_n,s):
    
    S=0
    for j in str_n:
        S=S+int(j)
    if(S<=s):
        print(0)
    else:
        S=0
        p=0
        while (p < len(str_n) and S<s):
            S=S+int(str_n[p])
            p=p+1
        #print("J'ai p=" + str(p) + " S=" + str(S) +" avec s=" +str(s))

        p=len(str_n)-p+1
        solution=1
        for i in range(p):
            solution = solution + (9 -  int(str_n[len(str_n)-i-1]))  * (10 ** i)
        print(solution)

for j in range(int(input())):
        str_n,str_s=input().split()
        solution(str_n,int(str_s))