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 math
for _ in range(int(input())):
	n , s = input().split()
	k = int(n)
	s = int(s)
	n = [int(i) for i in list(n)][::-1]
	moves = 0
	maxmoves = 10 ** (len(n)) - k
	csum = sum(n)
	if csum <= s:
		print(moves)
		continue
	if s == 1:
		print(maxmoves)
		continue
	carry = 0
	n += [0]


	for pos, char in enumerate(n):
		dig = char
		if carry == 1:
			csum += 1
			dig += 1
			carry = dig // 10
			dig = dig % 10
			if carry == 1:
				csum -= 10
		if dig == 0:
			continue
		if csum <= s:
			break
		while dig != 0 and csum > s:
			dig += 1
			moves += 10 ** pos
			if dig == 10:
				carry = True
				dig = 0
				csum -= 9
			else:
				csum += 1

	if csum <= s:
		print(moves)
		continue