Problem: You are given two positive integers n and k. Print the k-th positive integer that is not divisible by n.

For example, if n=3, and k=7, then all numbers that are not divisible by 3 are: 1, 2, 4, 5, 7, 8, 10, 11, 13 .... The 7-th number among them is 10.

Input

The first line contains an integer t (1 ≤ t ≤ 1000) — the number of test cases in the input. Next, t test cases are given, one per line.

Each test case is two positive integers n (2 ≤ n ≤ 10^9) and k (1 ≤ k ≤ 10^9).

Output

For each test case print the k-th positive integer that is not divisible by n.

Example

Input


6
3 7
4 12
2 1000000000
7 97
1000000000 1000000000
2 1


Output


10
15
1999999999
113
1000000001
1

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
using namespace std::chrono;
long long power(long long a, long long n) {
  long long p = 1;
  while (n > 0) {
    if (n % 2) {
      p = p * a;
    }
    n >>= 1;
    a *= a;
  }
  return p;
}
long long power(long long a, long long n, long long mod) {
  long long p = 1;
  while (n > 0) {
    if (n % 2) {
      p = p * a;
      p %= mod;
    }
    n >>= 1;
    a *= a;
    a %= mod;
  }
  return p % mod;
}
long long modInverse(long long a, long long m) {
  long long m0 = m;
  long long y = 0, x = 1;
  if (m == 1) {
    return 0;
  }
  while (a > 1) {
    long long q = a / m;
    long long t = m;
    m = a % m, a = t;
    t = y;
    y = x - q * y;
    x = t;
  }
  if (x < 0) {
    x += m0;
  }
  return x;
}
inline long long add(long long a, long long b) {
  return (((a >= 1000000007) ? a % 1000000007 : a) +
          ((b >= 1000000007) ? b % 1000000007 : b) + 1000000007) %
         1000000007;
}
inline long long subt(long long a, long long b) {
  return (a - b + 1000000007) % 1000000007;
}
inline long long mult(long long a, long long b) {
  return (1ll * ((a >= 1000000007) ? a % 1000000007 : a) *
          ((b >= 1000000007) ? b % 1000000007 : b)) %
         1000000007;
}
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
long long lcm(long long a, long long b) { return a * (b / gcd(a, b)); }
long long mylog(long long n, long long b) {
  long long i = 1;
  long long ans = 0;
  while (1) {
    if (i > n / b) {
      break;
    }
    i = i * b;
    ans++;
  }
  return ans;
}
bool compare(const pair<long long, long long> &a,
             const pair<long long, long long> &b) {
  if (a.first == b.first) {
    return a.second < b.second;
  }
  return a.first < b.first;
}
bool comparerev(const pair<long long, long long> &a,
                const pair<long long, long long> &b) {
  if (a.first == b.first) {
    return a.second > b.second;
  }
  return a.first > b.first;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long t = 1;
  cin >> t;
  while (t--) {
    long long val = 0;
    val++;
    long long n, k;
    val++;
    cin >> n >> k;
    val++;
    if (k % (n - 1) == 0) {
      cout << n * (k / (n - 1)) - 1 << endl;
    } else {
      long long multiplier = k / (n - 1);
      long long temp = n * multiplier;
      long long p = multiplier * (n - 1);
      long long temp2 = k - p;
      cout << temp + temp2 << endl;
    }
  }
  return 0;
}