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;
long long int i, j, k;
vector<long long int> adj[200005];
bool visited[200005] = {0};
long long int start[200005] = {0};
long long int sub_t[200005] = {0}, node_count = 0;
long long int level[200005] = {0};
vector<long long int> dfs_order;
long long int sqr(long long int x) { return 1ll * x * x; }
void printa(long long int a[], long long int n) {
  for (i = 0; i < n; i++) {
    cout << a[i] << " ";
  }
  cout << "\n";
}
void printv(vector<long long int> v) {
  for (i = 0; i < v.size(); i++) {
    cout << v[i] << " ";
  }
  cout << "\n";
}
const long long INF = 9223372036854775807;
const long long mod = 1e9 + 7;
void solve() {
  long long int n, k, temp;
  cin >> n >> k;
  if (k < n) {
    cout << k << endl;
  } else {
    k -= n - 1;
    temp = k / (n - 1);
    temp++;
    if (k % (n - 1) == 0) {
      cout << n * temp - 1 << endl;
    } else {
      cout << n * temp + k % (n - 1) << endl;
    }
  }
}
void call() {
  long long int t;
  cin >> t;
  for (long long int i = 1; i <= t; i++) {
    solve();
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  call();
}