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:
import sys,bisect
input = sys.stdin.readline

def One(type):
	return (type(input()))
def List(type):
	return list(map(type,input().split()))
def Str():
	ans = (list(input()))
	ans.pop()
	return ans
def Many(type):
	return map(type,input().split())

def val(n):
	ans = 0
	for i in n:
		ans+=int(i)
	return ans

def solve():
	n,s = Many(int)

	n = str(n)[::-1]
	ans = 0
	j = -1

	cnt = 10

	while j<len(n) and cnt>0:
		j+=1
		i = n[j]
		if val(n)<=s:
			break
		if int(i)==0:
			continue
		pl = 10-int(i)
		n = str(int(n[::-1])+pl*(10**j))[::-1]
		ans+=pl*(10**j)

	print(ans)

def main():
	t = One(int)
	for _ in range(t):
		solve()

main()