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.io.*;
import java.util.*;

public class Main {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args)  {
        int n = sc.nextInt();
        for (int i = 0; i < n; i++){
            StringBuilder t = new StringBuilder(sc.next());
            int s = sc.nextInt();
            int len = t.length();
            System.out.println(dec(t,s,len));
        }

    }
    static long dec(StringBuilder t, int s, int len){
        long mul = 1;
        int summa = 0;
        long sum = 0;
        for (int i = 0; i < len; i++){
            summa += Character.getNumericValue(t.charAt(i));
        }
        int i = len-1;
        int c = 0;
        while (s < summa){
            int at = Character.getNumericValue(t.charAt(i));
            at +=c;
            if (at != 0){
                sum += (long)(10 - at)*mul;
                summa-=(at-1);
                c = 1;

            }
            else {
                c = 0;
            }
            mul*=10;
            i--;
        }
        return sum;
    }

}