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 JAVA):

Solution:
import java.util.*;
public class D2 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		StringBuilder sb = new StringBuilder();
		int t = scan.nextInt();
		while (t-- > 0) {
			long n = scan.nextLong();
			int s = scan.nextInt();
			
			String value = Long.toString(n), digit = "";
			int subSum = 0, idx = 0;
			boolean chk = false;
			for (int i = 0; i < value.length(); i++) {
				subSum += value.charAt(i) - '0';
				if (!chk) 
					digit += value.charAt(i);
				if (subSum >= s && !chk) {
					idx = i;
					chk = true;
				}
			}

			if (subSum <= s) {
				sb.append(0 + "\n");
			}
			else {
				subSum = 0;
				long result = 0;
				for (int i = 0; i < digit.length(); i++)
					subSum += digit.charAt(i) - '0';
				if (idx == 0) {
					if (subSum >= s) {
						result = 10;
						for (int i = 0; i < value.length() - 1; i++)
							result *= 10;
					} else {
						if (subSum == 9)
							result = 10;
						else
							result = subSum + 1;

						for (int i = 0; i < value.length(); i++)
							result *= 10;
					}
				}
				else {
					if (subSum >= s) {
						result = Long.parseLong(digit) / 10 + 1;
						idx--;
					}
					else
						result = Long.parseLong(digit);
					
					for (int i = 0; i < value.length() - idx - 1; i++)
						result *= 10;
				}
				sb.append((result - n) + "\n");
			}
		}
		System.out.println(sb);
	}
}