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.ArrayList;
import java.util.Scanner;

public class D {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner s = new Scanner(System.in);
		int l = s.nextInt();
		ArrayList<Long> list;
		
		for(int i = 0; i < l; i++) {
			
			long n = s.nextLong();
			long sm = s.nextLong();
			long sum, digi, m, moves, pb, num, sz;
			list = new ArrayList<Long>();
			String toL = "";
			
			m = n;
			sum = 0;
			moves = 0;
			pb = 0;
			num = 0;
			sz = 0;
			
			while(m > 0){
								
	            digi = m % 10;
	            sum = sum + digi;
	            m = m / 10;
	            sz++;
	            
	            list.add(digi);
	            
	        }
			
			if(sum > sm) {	
				
				int ss = 0;
				
				for(int j = list.size()-1; j >= 0; j--) {
					
					ss += list.get(j);
					
					if(ss >= sm) {
						
						ss -= list.get(j);
						
						if(j < list.size()-1)
						list.set(j + 1, list.get(j+1) + 1);
						
						for(int k = j+1; k < list.size()-1; k++) {
							
							if(list.get(k) == 10) {
								
								list.set(k, (long) 0);
								if(k < list.size()-1)
								list.set(k + 1, list.get(k+1) + 1);
								
							}else
								break;
							
						}
						
						if(j == list.size()-1) {
							
							toL = "1";
							
							for(int k = 0; k < sz; k++) {
								
								toL += '0';
								
							}
							
						}else {
							
							toL = "";
														
							for(int k = list.size()-1; k >= 0; k--) {
								
								if(k > j)
									toL += list.get(k);
								else
									toL += '0';
								
							}
							
						}						
												
						break;
						
					}
					
				}
				
				System.out.println(Long.parseLong(toL) - n);
				
			}else {
				
				System.out.println("0");
				
			}
			
		}
		
	}

}