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:
a, b = int(input("")), []
for x in range(a):
	b.append(input("").split(" "))

#print("{} + {}".format(a, b))
c = []

def totalfunc(num):
	test = [0, []]
	found = False
	for x in range(len(num)):
		temp = int(num[x])
		test[0] += temp
		if temp != 0 or found == True:
			test[1].append(x)
			found = True
	return test


for x in b:
	#print("round {}".format(x[0]))
	broke = totalfunc(x[0])
	total, pos = broke[0], broke[1]
	if total <= int(x[1]):
		c.append(0)
	else:
		temp = 0
		possiblefinal = x[0]
		for y in range(len(pos) - 1, -1, -1):
			# x[1][pos[y]] non-zero value starting from right
			temp += (10 - int(possiblefinal[pos[y]])) * (10 ** (len(possiblefinal) - pos[y] - 1))
			#print("{} + {} = {}".format(int(x[0]), temp, int(x[0]) + temp))
			possiblefinal = int(x[0]) + temp
			#print(totalfunc(str(possiblefinal))[0])
			if totalfunc(str(possiblefinal))[0] <= int(x[1]):
				c.append(temp)
				break
			else:
				#print("nope")
				possiblefinal = str(possiblefinal)

for x in c:
	print(x)



'''
x[0] = initial number
x[1] = target sum
totalfunc(num) = function to return sum of numbers and positions of non-zero values





'''