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 ffffffff {
	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		int t=s.nextInt();
        for(int tt=0;tt<t;tt++) {
        	long n=s.nextLong();
        	long s1=s.nextLong();
        	long count=0;
        	long d=sum(n);
        	
        	if(d<=s1) {
        		count=0;
        	}else {
                long i=1;
        		while(d>s1) {
        			if((n%10)!=0) {
        				
        				d=d+1-n%10;
        				//System.out.println(" d="+ d);
            			count=count+i*10-(i*(n%10));
            			//System.out.println("count="+count);
            			n=n/10;
            			n++;
            			long e=n;
            			while(e%10==0) {
            				d=d-9;
            				e=e/10;
            			}
        			}else {
        				n=n/10;
        			}
        			//System.out.println("n="+n);
        			i=i*10;
        		}
        	}
        	
        	System.out.println(count);
        }
        s.close();
	}
	static long sum(long n) {
		 long ans=0;
		while(n!=0) {
			ans=ans+n%10;
			n=n/10;
		}
		return ans;
	}

}