#include <bits/stdc++.h>
using namespace std;
bool isPrime(long long int n) {
  for (long long int i = 2; i * i <= n; i++) {
    if (n % i == 0) return false;
  }
  return true;
}
long long int po(long long int a, long long int b) {
  long long int re = 1;
  while (b) {
    if (b % 2 == 1) {
      re = (re * a);
      re %= 1000000007;
    }
    a = (a * a);
    a %= 1000000007;
    b >>= 1;
  }
  return re;
}
int main() {
  long long int t;
  cin >> t;
  long long int temp, n, m, i, j, a, b, c, k, x, y;
  bool flag;
  map<long long int, long long int> mapp;
  vector<long long int> vec, nums;
  while (t--) {
    long long int s;
    cin >> n >> s;
    long long int sum = 0;
    long long int carry = 0;
    m = n;
    while (n) {
      sum += (n % 10);
      n /= 10;
    }
    long long int count = 0;
    long long int p = 1;
    while (sum > s) {
      temp = m % 10;
      if (temp == 9 && carry == 1) {
        sum -= 9;
      }
      temp += carry;
      temp %= 10;
      if (temp != 0) {
        count += (10 - temp) * p;
        carry = 1;
        sum -= temp;
        sum++;
      }
      p *= 10;
      m /= 10;
    }
    cout << count << endl;
    nums.clear();
    vec.clear();
    mapp.clear();
  }
  return 0;
}

### Prompt

In cpp, your task is to solve the following 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

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
bool isPrime(long long int n) {
  for (long long int i = 2; i * i <= n; i++) {
    if (n % i == 0) return false;
  }
  return true;
}
long long int po(long long int a, long long int b) {
  long long int re = 1;
  while (b) {
    if (b % 2 == 1) {
      re = (re * a);
      re %= 1000000007;
    }
    a = (a * a);
    a %= 1000000007;
    b >>= 1;
  }
  return re;
}
int main() {
  long long int t;
  cin >> t;
  long long int temp, n, m, i, j, a, b, c, k, x, y;
  bool flag;
  map<long long int, long long int> mapp;
  vector<long long int> vec, nums;
  while (t--) {
    long long int s;
    cin >> n >> s;
    long long int sum = 0;
    long long int carry = 0;
    m = n;
    while (n) {
      sum += (n % 10);
      n /= 10;
    }
    long long int count = 0;
    long long int p = 1;
    while (sum > s) {
      temp = m % 10;
      if (temp == 9 && carry == 1) {
        sum -= 9;
      }
      temp += carry;
      temp %= 10;
      if (temp != 0) {
        count += (10 - temp) * p;
        carry = 1;
        sum -= temp;
        sum++;
      }
      p *= 10;
      m /= 10;
    }
    cout << count << endl;
    nums.clear();
    vec.clear();
    mapp.clear();
  }
  return 0;
}

```