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;
vector<int> findNewNo(long long int n, vector<int> v, int x, int dSum) {
  if (dSum <= x) return v;
  long long int localSum = 0;
  long long int i = 0, f = 0;
  while (i < v.size()) {
    if ((localSum + v[i]) >= x) break;
    localSum += v[i];
    i++;
  }
  if (i == 0 && x <= 10 && dSum >= x) {
    while (v[i] < 10) v[i]++;
    for (int j = i + 1; j < v.size(); j++) v[j] = 0;
    return v;
  }
  i--;
  v[i]++;
  localSum++;
  for (int j = i + 1; j < v.size(); j++) v[j] = 0;
  i = v.size() - 1;
  for (; i >= 0; i--) {
    for (long long int k = 1; k <= 9; k++) {
      if (localSum <= x) {
        f = 1;
        break;
      }
      v[i]++;
      localSum++;
    }
    if (f == 1) break;
  }
  return v;
}
int main() {
  long long int t;
  cin >> t;
  while (t--) {
    long long int n, x, dSum = 0;
    cin >> n >> x;
    vector<int> v;
    long long int temp = n;
    while (temp) {
      int d = temp % 10;
      dSum += d;
      v.push_back(d);
      temp /= 10;
    }
    reverse(v.begin(), v.end());
    vector<int> newNo = findNewNo(n, v, x, dSum);
    long long int nn = newNo[0];
    for (int i = 1; i < newNo.size(); i++) {
      nn = nn * 10 + newNo[i];
    }
    cout << nn - n << endl;
  }
}