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 sys
import os

DEBUG = True

class Scan():
    def __init__(self):
        self.read = sys.stdin.read
        self.input = sys.stdin.readline

    def integer(self, count=1):
        if count == 1:
            return self._integer()
        return [self._integer() for _ in range(count)]

    def _integer(self):
        sym: str = self.read(1)
       
        number, sign = (0, -1) if sym == '-' else (int(sym), 1)
        sym: str = self.read(1)
        while sym.isdigit():
            number = number * 10 + int(sym)
            sym = self.read(1)
        
        return number * sign

def solution(scan: Scan):
    a, b = scan.integer(2)
    if a % b == 0:
        sys.stdout.write(str(0) + '\n')
    else:
        sys.stdout.write(str((a // b + 1) * b - a) + '\n')

def main():
    queries: int = 1
    scan = Scan()
    queries = scan.integer()
    for _ in range(queries):
        solution(scan)
    
if __name__ == "__main__":
    main()