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>
#pragma GCC optimize("O3")
using namespace std;
int main() {
  long long t;
  cin >> t;
  while (t--) {
    long long q;
    string n;
    long long s;
    cin >> q >> s;
    n = to_string(q);
    n = '0' + n;
    long long m = n.length();
    vector<long long> p(19), num(m);
    long long v = 1;
    for (long long i = 0; i < (19); i++) {
      p[i] = v;
      v *= 10;
    }
    long long ans = 0;
    while (true) {
      long long t = s;
      for (long long i = 0; i < (m); i++) {
        long long c = n[m - 1 - i] - '0';
        if (i == 0) {
          num[i] = c * p[i];
        } else {
          num[i] = num[i - 1] + c * p[i];
        }
      }
      bool ok = true;
      for (long long i = 1; i < m; i++) {
        long long c = n[i] - '0';
        if (c <= t) {
          t -= c;
        } else {
          for (long long j = i; j < m; j++) {
            n[j] = '0';
          }
          long long pos = i;
          while (true) {
            pos--;
            long long r = n[pos] - '0';
            if (r == 9) {
              n[pos] = '0';
              continue;
            } else {
              r++;
              n[pos] = '0' + r;
              break;
            }
          }
          ok = false;
          break;
        }
      }
      if (ok) break;
    }
    for (long long i = 0; i < (m); i++) {
      long long c = n[m - 1 - i] - '0';
      ans += c * p[i];
    }
    cout << ans - q << '\n';
  }
  return 0;
}