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

def sod(x):

	ans=0
	while(x>0):
		ans+=(x%10)
		x//=10
	return ans

def solve(n,s):

	num = n
	v = len(str(n))
	answer=0

	ind=0

	flag=False

	while(sod(n)>s):

		d = (num%10)

		if(flag):
			d+=1
			d%=10

		if(d>0):

			n+=(10-d)*pow(10,ind)
			answer+=(10-d)*pow(10,ind)

			if(sod(n)<=s):
				break

			flag=True

		num//=10

		ind+=1

	return answer

t=int(sys.stdin.readline())

ans_arr=[]

for i in range(t):
	[n,s]=[int(j) for j in sys.stdin.readline().split()]
	# print(solve(n,s))
	ans_arr.append(str(solve(n,s)))

print("\n".join(ans_arr))