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

Solution:
#include <bits/stdc++.h>
using namespace std;
int main() {
  int t;
  cin >> t;
  while (t--) {
    long long n, x, y = 1, z = 1, i, j, k, sum = 0, ans;
    string s, s2;
    cin >> s >> x;
    for (i = s.size() - 1; i >= 0; i--) {
      sum += (s[i] - '0') * y;
      y = y * 10;
    }
    y = sum;
    i = s.size() - 1;
    while (1) {
      sum = 0;
      for (j = 0; j < s.size(); j++) sum += (s[j] - '0');
      if (sum <= x) break;
      if (s[i] != '0') {
        s[i] = '0';
        for (j = i - 1; j >= 0; j--) {
          if (s[j] < '9') {
            if (s[j] == '1')
              s[j] = '2';
            else if (s[j] == '2')
              s[j] = '3';
            else if (s[j] == '3')
              s[j] = '4';
            else if (s[j] == '4')
              s[j] = '5';
            else if (s[j] == '5')
              s[j] = '6';
            else if (s[j] == '6')
              s[j] = '7';
            else if (s[j] == '7')
              s[j] = '8';
            else if (s[j] == '8')
              s[j] = '9';
            else if (s[j] == '0')
              s[j] = '1';
            break;
          } else if (s[j] == '9')
            s[j] = '0';
        }
      }
      i--;
    }
    if (sum == 0) {
      s2 = "1";
      for (i = 0; i < s.size(); i++) s2 += '0';
      for (i = s2.size() - 1; i >= 0; i--) {
        sum += (s2[i] - '0') * z;
        z = z * 10;
      }
      ans = sum - y;
    } else {
      sum = 0;
      for (i = s.size() - 1; i >= 0; i--) {
        sum += (s[i] - '0') * z;
        z = z * 10;
      }
      ans = sum - y;
    }
    cout << ans << endl;
  }
  return 0;
}